프로그래머스 - [1차] 다트 게임

well-life-gm·2021년 12월 19일
0

프로그래머스

목록 보기
91/125

프로그래머스 - [1차] 다트 게임

주어진데로 구현하면 되는 쉬운 문제이다.

코드는 아래와 같다.

#include <string>
#include <vector>
#include <cmath>

using namespace std;

bool is_number(char a)
{
    return '0' <= a && a <= '9';
}
int solution(string dartResult) {
    int answer = 0;
    int idx = 0;
    vector<int> result;
    for(int i=0;i<dartResult.size();i++) {
        if(dartResult[i] == '*') {
            if(idx > 1) 
                result[idx - 2] *= 2;
            result[idx - 1] *= 2;
        } else if(dartResult[i] == '#') {
            result[idx - 1] *= -1;
        } else if(is_number(dartResult[i])) {
            int n;
            if(is_number(dartResult[i + 1])) {
                n = 10;
                i++;
            } else 
                n = dartResult[i] - '0';
            
            if(dartResult[i + 1] == 'D') 
                n = pow(n, 2);
            else if(dartResult[i + 1] == 'T') 
                n = pow(n, 3);
            result.push_back(n);
            idx++;
        }
    }
    
    for(auto it : result) 
        answer += it;
    
    return answer;
}

결과

profile
내가 보려고 만든 블로그

0개의 댓글