Study/Coding Test
[2018 1차 KAKAO] 다트 게임
_gayeon
2021. 10. 7. 23:25
https://programmers.co.kr/learn/courses/30/lessons/17682
코딩테스트 연습 - [1차] 다트 게임
programmers.co.kr
#include <string>
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
int solution(string dartResult) {
int answer = 0;
vector<int> v;
int idx=0;
int v_idx = -1;
int score;
char bonus, option;
while(idx < dartResult.size()){
if(dartResult[idx]>='0' && dartResult[idx]<='9'){
if(dartResult[idx] == '1' && dartResult[idx+1] == '0'){
score = 10;
idx++;
}
else{
score = dartResult[idx] - '0';
}
idx++;
continue;
}
else if(dartResult[idx] == 'S'){
v.push_back(score);
v_idx++;
}
else if(dartResult[idx] == 'D'){
v.push_back(pow(score,2));
v_idx++;
}
else if(dartResult[idx] == 'T'){
v.push_back(pow(score,3));
v_idx++;
}
else if(dartResult[idx] == '*'){
v[v_idx] *=2;
if(v_idx > 0)
v[v_idx-1] *=2;
}
else if(dartResult[idx] == '#'){
v[v_idx] *= (-1);
}
idx++;
}
for(int i=0; i<v.size(); i++){
answer += v[i];
cout << v[i] << endl;
}
return answer;
}
큰 어려움없이 풀수 있는 문제였다.