algorithm/programmers
programmers [1차] 다트게임 c++
_JunHo
2020. 12. 21. 11:01
programmers.co.kr/learn/courses/30/lessons/17682
코딩테스트 연습 - [1차] 다트 게임
programmers.co.kr
2018 카카오 블라인드에서 출제된 다트 게임입니다.
문제에서 요구하는대로 '구현'할 수 있는지 묻는 문제였습니다.
요구하는 그대로 따라가주시면 됩니다.
#include <string>
#include <vector>
#include <cmath>
using namespace std;
int solution(string str) {
vector<int> v;
int answer = 0;
for(int i = 0; i<str.size(); i+=2){
int num = str[i]-'0';
if (str[i + 1] == '0') {
num = 10; i++;
}
char ch = str[i+1];
int p = ch == 'S' ? 1 : (ch == 'D' ? 2 : 3);
num = pow(num, p);
if(i+2 < str.size() && (str[i+2] == '*' || str[i+2] == '#')){
if(str[i+2] == '*') {
num *= 2;
if(v.size()>0) v[v.size()-1] *= 2;
}
else if(str[i+2] == '#'){
num *= -1;
}
i++;
}
v.push_back(num);
}
for(int i = 0; i<v.size(); i++) answer += v[i];
return answer;
}