728x90
https://school.programmers.co.kr/learn/courses/30/lessons/17682
728x90
메모리: 67.6 MB, 시간: 0.07 ms
사용 알고리즘: 구현
class Solution {
public int solution(String dartResult) {
int answer = 0;
// 이전 점수
int preScore = 0;
// dartResult의 인덱스
int index = 0;
int score; char bonus;
while(index < dartResult.length()) {
// 점수
score = dartResult.charAt(index++) - '0';
if(dartResult.charAt(index) == '0') { // 점수가 10일 경우
score = 10;
index++;
}
// 보너스
bonus = dartResult.charAt(index++);
if(bonus == 'D') score = (int)Math.pow(score, 2);
else if(bonus == 'T') score = (int)Math.pow(score, 3);
// 옵션
if(index < dartResult.length()) {
if(dartResult.charAt(index) == '*') {
preScore *= 2;
score *= 2;
index++;
}
else if(dartResult.charAt(index) == '#') {
score *= -1;
index++;
}
}
answer += preScore;
preScore = score;
}
answer += preScore;
return answer;
}
}
728x90
'Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스, 12982] 예산 (java) (0) | 2025.01.14 |
---|---|
[프로그래머스, 68935] 3진법 뒤집기 (java) (0) | 2025.01.14 |
[프로그래머스, 340213] [PCCP 기출문제] 1번 / 동영상 재생기 (java) (0) | 2025.01.14 |
[프로그래머스, 86051] 없는 숫자 더하기 (java) (0) | 2025.01.13 |
[프로그래머스, 12913] 땅따먹기 (java) (0) | 2025.01.07 |