problem solving
[프로그래머스][1차] 다트 게임
Shinuk Yi
2020. 3. 6. 18:34
간단한 구현 문제
#include <string>
using namespace std;
int solution(string dartResult) {
int answer = 0;
int val[3] = { 0 };
int pos = 0, count = -1, mul;
while(pos < dartResult.size()) {
switch(dartResult[pos]) {
case 'S': mul = val[count];
for(int i = 0; i < 1 - 1; i++) { val[count] *= mul; }
break;
case 'D': mul = val[count];
for(int i = 0; i < 2 - 1; i++) { val[count] *= mul; }
break;
case 'T': mul = val[count];
for(int i = 0; i < 3 - 1; i++) { val[count] *= mul; }
break;
case '*': val[count] *= 2;
if(count - 1 >= 0) val[count - 1] *= 2;
break;
case '#': val[count] *= -1;
break;
default:
count++;
val[count] = 0;
while(dartResult[pos] - '0' >= 0 && dartResult[pos] - '0' < 10) {
val[count] += dartResult[pos] - '0';
if(dartResult[pos + 1] - '0' < 0 || dartResult[pos + 1] - '0' > 9) { break; }
val[count] *= 10;
pos++;
}
}
pos++;
}
for(int i = 0; i < 3; i++) answer += val[i];
return answer;
}
|
cs |