문제
https://programmers.co.kr/learn/courses/30/lessons/17682
해답
stringsteam을 잘 활용하니 parsing을 쉽게 할 수 있었다.
#include <string>
#include <sstream>
#include <iostream>
#include <cmath>
using namespace std;
int solution(string dartResult) {
stringstream ss(dartResult);
int answer = 0;
int answerList[3] = { 0, };
int strIdx = 0;
for (int i = 0; i < 3; i++) {
//parsing
int score = 0;
char bonus = 0, option = 0;
ss >> score;
bonus = ss.get();
option = ss.get();
if (option != '*' && option != '#')
ss.unget();
//score
answerList[i] = score;
//bouns
switch (bonus)
{
case 'S':
break;
case 'D':
answerList[i] = pow(answerList[i], 2);
break;
case 'T':
answerList[i] = pow(answerList[i], 3);
break;
}
//option
if (option == 0) {
continue;
}
else if (option == '#') {
answerList[i] *= -1;
}
else if (option == '*') {
if (i == 0) {
answerList[i] *= 2;
}
else {
answerList[i] *= 2; answerList[i - 1] *= 2;
}
}
}
for (auto a : answerList)
answer += a;
return answer;
}
'Algorithm > 문제 풀이 (Problem Solving)' 카테고리의 다른 글
[C++, 문자열, 슬라이딩 윈도우] 프로그래머스 추석 트래픽 (0) | 2022.04.05 |
---|---|
[C++, 문자열] 프로그래머스 오픈채팅방 (0) | 2022.04.04 |
[C++, 문자열] 프로그래머스 신규 아이디 추천 (0) | 2022.03.23 |
[C++, 세그먼트 트리, 데이터추가 반영] 백준 2042번 구간 합 구하기 (0) | 2020.11.22 |
[C++,구현, 중복 순열] 백준 17825번 주사위 윷놀이 문제풀이 (1) | 2020.06.01 |
댓글