Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
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
Tags
more
Archives
Today
Total
관리 메뉴

자이의 프로그래밍

Level 1. 다트게임 본문

Algorithm/Cases-Programmers

Level 1. 다트게임

Xi_kor 2020. 5. 13. 17:55

https://programmers.co.kr/learn/courses/30/lessons/17682

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

#include <string>
#include <vector>
#include <iostream>
using namespace std;

int solution(string dartResult) {
	int answer = 0;
	int index = 0;
	vector <int> scores;

	for (int i = 0; i < dartResult.length(); i++) {
		if (dartResult[i] == 'S') {}
		else if (dartResult[i] == 'D') {
			scores[index - 1] = scores[index - 1] * scores[index - 1];
		}
		else if (dartResult[i] == 'T') {
			scores[index - 1] = scores[index - 1] * scores[index - 1] * scores[index - 1];
		}
		else if (dartResult[i] == '*') {
			scores[index - 1] = scores[index - 1] * 2;
			if (index > 1)
				scores[index - 2] = scores[index - 2] * 2;
		}
		else if (dartResult[i] == '#') {
			scores[index - 1] = scores[index - 1] * -1;
		}
		else { //숫자
			if (dartResult[i + 1] == '0') {
				scores.push_back(10);
				i++;
			}	
			else 
				scores.push_back(dartResult[i] - '0');
			index++;
		}
	}

	for (int i = 0; i < scores.size(); i++)
		answer += scores[i];
	return answer;
}