코딩테스트/구현|기타
[구현] 프로그래머스 [1차] 다트 게임 C++
유(YOO)
2022. 2. 4. 10:33
https://programmers.co.kr/learn/courses/30/lessons/17682
#include <string>
#include <iostream>
using namespace std;
int solution(string dartResult) {
int answer = 0;
int before = 0 ;
for(int i=0; i<dartResult.length(); i++) {
if ((dartResult[i] >='0') && (dartResult[i] <= '9')) {
int score = dartResult[i]-'0'; // stoi()
if (dartResult[i] =='1') {
if (dartResult[i+1] == '0') {
score = 10;
i++; // 인덱스 조심
}
}
while(true) {
i++;
// 인덱스 에러 조심 10D10T*10S
if (i == dartResult.length()) {
answer += score;
break;
}
if (dartResult[i] == '*') {
answer = (answer - before) + (before + score) * 2;
before = score * 2;
break;
}
else if (dartResult[i] == '#') {
answer -= score;
before = score * (-1);
break;
}
else if ((dartResult[i] >='0') && (dartResult[i] <= '9')) {
answer += score;
i--;
before = score;
break;
}
if (dartResult[i] == 'D') score = score * score;
else if (dartResult[i] == 'T') score = score * score * score;
}
}
}
return answer;
}