프로그래머스
프로그래머스 [1차] 다트 게임(2018 KAKAO BLIND RECRUITMENT)
콩순이냉장고
2021. 9. 8. 15:13
문제URL : https://programmers.co.kr/learn/courses/30/lessons/17682
문제 접근법 : 숫자는 숫자로 따로 배열안에넣어 *나 #이 만나면 2배를 해주거나 음수를 붙여줍니다.
결과값은 마지막에 배열안에있는값을 다 더해주면 되겠죠
소스코드 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#include <bits/stdc++.h>
using namespace std;
int s[300];
int solution(string dartResult) {
int answer = 0;
s['S'] = 1;
s['D'] = 2;
s['T'] = 3;
string t = dartResult;
int before = 0;
string num;
vector<int> v = { 0 };
for (int i = 0; i < t.size(); i++) {
if ('0' <= t[i] && t[i] <= '9') {
num += t[i];
}
else if ('A' <= t[i] && t[i] <= 'Z') {
int num1;
num1 = pow(stoi(num), s[t[i]]);
v.push_back(num1);
num = "";
}
else {
if (t[i] == '*') {
v[v.size() - 2] *= 2;
v[v.size() - 1] *= 2;
}
else if (t[i] == '#') {
v[v.size() - 1] = -v[v.size() - 1];
}
}
}
for (int i = 0; i < v.size(); i++)
answer += v[i];
return answer;
}
|
cs |
궁금한점 혹은 모르는점 어떤 질문이든 댓글은 언제나 환영입니다.