카카오 1차 코딩 테스트 2번 문제풀이
2. 다트 게임(난이도: 하)
입력 | 출력 |
1S2D*3T |
37 |
1D2S#10S |
9 |
1D2S0T |
3 |
1S*2T*3S |
23 |
1D#2S*3S |
5 |
1T2D3D# |
-4 |
1D2S3T* |
59 |
C++ 소스코드 (20201018 코드 수정)
// 프로그래머스 2018 KAKAO BLIND RECRUITMENT [1차] 다트 게임 #include <string> using namespace std; int solution(string dartResult) { int answer = 0; int prev = 0; int score = 0; int idx = 0; for (int i = 0; i < 3; i++) { score = dartResult[idx++] - '0'; if (score == 1 && dartResult[idx] - '0' == 0) { score = 10; ++idx; } if (dartResult[idx] == 'D') score *= score; else if (dartResult[idx] == 'T') score *= score * score; ++idx; if (dartResult[idx] == '*') { score *= 2; prev *= 2; ++idx; } else if (dartResult[idx] == '#') { score *= -1; ++idx; } answer += prev; prev = score; } answer += prev; return answer; } int main() { string arr[] = { "1S2D*3T", "1D2S#10S", "1D2S0T", "1S*2T*3S", "1D#2S*3S", "1T2D3D#", "1D2S3T*" }; for (auto str : arr) printf("%d\n", solution(str)); return 0; }
반응형
'코딩테스트 > 카카오' 카테고리의 다른 글
카카오 1차 코딩테스트 6번 프렌즈4블록 문제풀이 (0) | 2018.06.06 |
---|---|
카카오 1차 코딩테스트 5번 뉴스 클러스터링 문제풀이 (2) | 2018.06.03 |
카카오 1차 코딩테스트 4번 셔틀버스 문제풀이 (0) | 2018.05.31 |
카카오 1차 코딩테스트 3번 캐시 문제풀이 (0) | 2018.05.24 |
카카오 1차 코딩테스트 1번 비밀지도 문제풀이 (0) | 2018.05.22 |