간단한 구현 문제
#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 |
'problem solving' 카테고리의 다른 글
[프로그래머스]스킬트리 (0) | 2020.03.07 |
---|---|
[프로그래머스]탑 (0) | 2020.03.07 |
[프로그래머스]실패율 (0) | 2020.03.06 |
[프로그래머스][1차] 비밀지도 (0) | 2020.03.06 |
[프로그래머스]문자열 내 마음대로 정렬하기 (0) | 2020.03.06 |