카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다.
갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다.
import java.util.*;
class Solution {
public int solution(String dr) {
Map<Character, Integer> hm = new HashMap<>();
hm.put('S',1);
hm.put('D',2);
hm.put('T',3);
Set<Character> hs = new HashSet<>();
hs.add('*');
hs.add('#');
int idx = 0, sum = 0, bef = 0;
for(int i=0 ; i<dr.length() ; i++) {
int i1 = i;
while(i<dr.length() && Character.isDigit(dr.charAt(i))) {
i++;
}
int num = (int)Math.pow(Integer.valueOf(dr.substring(i1, i)), hm.get(dr.charAt(i)));
if((i+1)<dr.length() && hs.contains(dr.charAt(i+1))) {
i++;
if(dr.charAt(i)=='#') {
num *= -1;
} else {
num *= 2;
sum += bef;
}
}
sum += num;
bef = num;
}
return sum;
}
}