#include <string>
#include <vector>
using namespace std;
int solution(string dartResult) {
int answer = 0;
vector<int> ans;
int ansIdx=-1;
for(int i=0;i<dartResult.size();i++){
switch(dartResult[i]){
case 'S':break;
case 'D':
ans[ansIdx]=ans[ansIdx]*ans[ansIdx];break;
case 'T':
ans[ansIdx]=ans[ansIdx]*ans[ansIdx]*ans[ansIdx];break;
case '*':
if(ansIdx==0)
ans[ansIdx]*=2;
else{
ans[ansIdx-1]*=2;
ans[ansIdx]*=2;
}
break;
case '#':
ans[ansIdx]*=(-1);
break;
default:
ansIdx++;
if(dartResult[i]-'0'==1&&dartResult[i+1]-'0'==0)
{ans.push_back(10);i++;}
else
ans.push_back(dartResult[i]-'0');
break;
}
}
for(int i=0;i<ans.size();i++){
answer+=ans[i];
}
return answer;
}
숫자를 기준으로 끊어 벡터에 추가하고 더해주는 방법으로 구성하였다.
반응형
'알고리즘 문제 > C++' 카테고리의 다른 글
[프로그래머스] Level2 : 스킬트리 - C++ (0) | 2020.07.10 |
---|---|
[프로그래머스] Level2 : [1차] 뉴스 클러스터링 - C++ (0) | 2020.07.06 |
[프로그래머스] Level1 : 키패드 누르기 - C++ (0) | 2020.07.03 |
[프로그래머스] Level1 : 실패율 - C++ (0) | 2020.07.03 |
[프로그래머스] Level1 : 크레인 인형뽑기 게임 - C++ (0) | 2020.06.30 |