반응형
![[Level_1 / C++ / 카카오] [1차] 다트 게임 [Level_1 / C++ / 카카오] [1차] 다트 게임](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
아이유를 정말 좋아하기 때문에 이 문제는 꼭 풀려고 마음 먹었다.
이 문제는 하라는대로 풀면 된다.
코드를 봐도 쉽게 이해할 수 있을거라고 생각한다.
다만, 저와 똑같은 실수를 하시는 분도 계실까봐 말씀드리지만,
스타상(*)은 해당 점수와 바로 전에 얻은 점수를 2배하는 것이지, 이전에 얻은 모든 점수에 2배를 하는것이 아니다!
#include <string>
#include <vector>
using namespace std;
int solution(string dartResult) {
int answer = 0;
string s= dartResult;
vector<int> v;
string s1="";
for(int i=0; i<s.size(); i++){
if(s[i]>='0'&&s[i]<='9')s1+=s[i];
else if(s[i]=='*'||s[i]=='#'){
if(s[i]=='*'){
if(v.size()==1)v.back()*=2;
else {
v[v.size()-1]*=2;
v[v.size()-2]*=2;
}
}
else v.back()*=-1;
}
else{
v.push_back(stoi(s1));
s1="";
if(s[i]=='S') v.back()*=1;
else if(s[i]=='D') v.back()*=v.back();
else v.back()=v.back()*v.back()*v.back();
}
}
for(int i=0; i<v.size(); i++) answer+=v[i];
return answer;
}
코딩테스트 연습 - [1차] 다트 게임
...
programmers.co.kr
반응형
'프로그래머스 > Level_1' 카테고리의 다른 글
[프로그래머스 Level_1 / C++ / 카카오] 키패드 누르기 (0) | 2022.02.18 |
---|---|
[Level_1 / C++ / 카카오] 실패율 (0) | 2022.01.23 |
[Level_1 / C++ / 카카오] [1차] 비밀지도 (0) | 2022.01.23 |
[Level_1 / C++ / 카카오] 신고 결과 받기 (0) | 2022.01.23 |
댓글