728x90
▶ 문제
▶ 풀이방법
카카오 문제에, 문제 설명이 길다보니 Lv1문제임에도 불구하고 겁을 좀 먹었지만,,차근차근 문제를 읽다보니 쉽게 풀수 있는 문제였다.!
문자열의 문자들을 switch~case문으로 판별해 풀이하였다.
++아스키 코드에는 '10'이라는 문자가 없으므로 주의해서 풀이할 것!
class Solution {
public int solution(String dartResult) {
int answer = 0;
int[] arr = new int[3];
int index = 0;
for(int i = 0; i < dartResult.length(); i++){
char c = dartResult.charAt(i);
if(c == '0') arr[index] = (arr[index] == 1) ? 10 : 0;
if(c > '0' && c <= '9') {
arr[index] = (int)c-48;
continue;
}
switch(c){
case 'S' :
index++;
break;
case 'D' :
arr[index] *= arr[index];
index++;
break;
case 'T' :
arr[index] *= arr[index] * arr[index];
index++;
break;
case '*' :
arr[index-1] *= 2;
if(index > 1) arr[index-2] *= 2;
break;
case '#' :
if(index > 0) arr[index-1] = -arr[index-1];
break;
}
}
for(int a : arr) answer += a;
return answer;
}
}
728x90
'Algorithm > PROGRAMMERS[Java]' 카테고리의 다른 글
Lv1. 비밀지도[카카오] (0) | 2022.04.17 |
---|---|
Lv1. 가운데 글자 가져오기 (0) | 2022.04.17 |
Lv1. 같은 숫자는 싫어 (0) | 2022.04.17 |
Lv1. 나누어 떨어지는 숫자 배열 (0) | 2022.04.17 |
Lv1. 두 정수 사이의 합 (0) | 2022.04.16 |