[1차] 다트 게임
코드
#include <string>
#include <vector>
using namespace std;
int solution(string dartResult) {
int answer = 0; // 결과값
int numindex=0; // num -> index
string result=""; // 다트 점수 및 영역, 옵션 표시
vector<int> num;
for(int i=0;i<dartResult.size();i++){
if(dartResult[i]>='0' && dartResult[i]<='9'){ // 숫자 인 경우 result에 계속 이어 붙임
result=result+dartResult[i];
}else if(dartResult[i]=='S'){ // dartResult[i]^1
num.push_back(stoi(result));
numindex++; // num index값 증가
result=""; // result 값 초기화
}else if(dartResult[i]=='D'){ // dartResult[i]^2
num.push_back(stoi(result)*stoi(result));
numindex++; // num index값 증가
result=""; // result 값 초기화
}else if(dartResult[i]=='T'){ // dartResult[i]^3
num.push_back(stoi(result)*stoi(result)*stoi(result));
numindex++; // num index값 증가
result=""; // result 값 초기화
}else if(dartResult[i]=='*'){ // *2 -> 당첨 시 해당 점수와 바로 전에 얻은 점수를 각 2배로 만든다.
for(int i=numindex-2;i<=numindex-1;i++){
num[i]=num[i]*2;
}
}else if(dartResult[i]=='#'){ // -> 당첨 시 해당 점수는 마이너스된다.
num[numindex-1]=num[numindex-1]*(-1); // *와 #d은 중첩 가능하므로 *(-1)
}
}
for (auto n : num){
answer=answer+n;
}
return answer;
}
'C++ > programmers 코딩테스트(level 1) C++' 카테고리의 다른 글
[C/C++] programmers Level 1 문자열 나누기 (2) | 2023.10.30 |
---|---|
[C/C++] programmers Level 1 숫자 짝꿍 (0) | 2023.10.26 |
[C/C++] programmers Level 1 실패율 (0) | 2023.10.24 |
[C/C++] programmers Level 1 로또의 최고 순위와 최저 순위 (0) | 2023.10.18 |
[C/C++] programmers Level 1 덧칠하기 (0) | 2023.10.18 |