2018 KAKAO BLIND RECRUITMENT
🔥 다트게임 🔥
다트게임의 점수로직을 이해한 후, 0 ~ 10의 정수와 문자 S,D,T,*,# 로 구성된 문자열이 입력될 시 총점수를 반환하는 함수를 완성하자
"점수|보너스|[옵션]"으로 이루어진 문자열 3세트
ex) 1S2D*3T
- 정수는 0에서 10사이의 정수
- 보너스는 S,D,T 중 하나
- 옵션은 *이나 # 중 하나이며, 없을 수도 있음
3번의 기회에서 얻은 점수 합계에 해당하는 점수값을 출력
ex) 37
class Solution {
public int solution(String dartResult) {
int answer = 0;
1️⃣
char[] c = dartResult.toCharArray();
2️⃣
int[] score = new int[3];
3️⃣
int round = -1;
4️⃣
for(int i=0;i<c.length;i++){
5️⃣
if('0' <= c[i] && c[i] <= '9'){
round++;
score[round] += Integer.parseInt(String.valueOf(c[i]));
6️⃣
//점수가 10점일 때
if(c[i] == '1' && c[i+1] == '0'){
score[round] -= Integer.parseInt(String.valueOf(c[i]));
score[round] = 10;
i++;
}
7️⃣
}else if(c[i] == 'D'){
score[round] *= score[round];
}else if(c[i] == 'T'){
score[round] *= score[round]*score[round];
8️⃣
}else if(c[i] == '*'){
if(round > 0) score[round-1] *=2;
score[round] *=2;
}else if(c[i] == '#'){
score[round] *= -1;
}
}
9️⃣
answer = score[0]+score[1]+score[2];
return answer;
}
}
문제보고 감도 못 잡고 방황했다ㅎㅎ
씨름하다가 결국 다른분들의 풀이를 찾아본 후에야 문제를 해결할 수 있었다.