programmers.co.kr/learn/courses/30/lessons/17682
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;
}
'algorithm > programmers' 카테고리의 다른 글
programmers 징검다리 c++ (0) | 2020.12.23 |
---|---|
programmers 입국심사 c++ (0) | 2020.12.21 |
programmers [1차] 뉴스 클러스터링 c++ (0) | 2020.12.21 |
programmers 무지의 먹방 라이브 (0) | 2020.12.20 |
Programmers 경주로 건설 (0) | 2020.12.20 |