본문 바로가기

알고리즘/카카오

다트게임

반응형

https://programmers.co.kr/learn/courses/30/lessons/17682

 

코딩테스트 연습 - [1차] 다트 게임

 

programmers.co.kr


import java.util.ArrayList;

class Solution {
  public int solution(String dartResult) {
      		int answer = 0;
	
		
		char[] arr = dartResult.toCharArray();

		ArrayList<Integer> calc = new ArrayList<Integer>();
		
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] == 'S' || arr[i] == 'D' || arr[i] == 'T') {
				if (arr[i] == 'D') {
					calc.set(calc.size() - 1, (int) Math.pow(calc.get(calc.size() - 1), 2));
				} else if (arr[i] == 'T') {
					calc.set(calc.size() - 1, (int) Math.pow(calc.get(calc.size() - 1), 3));
				}

			} else if (arr[i] == '#' || arr[i] == '*') {
				if (arr[i] == '#') {
					calc.set(calc.size() - 1, calc.get(calc.size() - 1) * -1);
				} else {
					// arr[i] == '*'
					if (i != 2) {
						calc.set(calc.size() - 2, calc.get(calc.size() - 2) * 2);
					}
					calc.set(calc.size() - 1, calc.get(calc.size() - 1) * 2);
				}
			} else {
				// arr[i] == 1 ~ 10
				if (arr[i] == '1' && arr[i + 1] == '0') {
					calc.add(10);
					for(int j=i+1; j<arr.length-1; j++) {
						arr[j] = arr[j+1];
					}
					arr[arr.length-1] = '0';
				} else {
					calc.add(arr[i] - 48);
				}
			}
		}
		
		for(int i=0; i<calc.size(); i++) {
//			System.out.print(calc.get(i) + " ");
			answer += calc.get(i);
		}

		return answer;
  }
}
반응형

'알고리즘 > 카카오' 카테고리의 다른 글

오픈채팅방  (0) 2020.05.29
비밀지도  (0) 2020.05.26
크레인 인형뽑기 게임  (0) 2020.05.17
실패율  (0) 2020.05.15
[프로그래머스] 문자열 압축  (0) 2020.04.10