https://school.programmers.co.kr/learn/courses/30/lessons/17682
*
: 지금 점수, 이전 점수에 2배 곱#
: 지금 점수에 -1배 곱 / * 연산 있으면 -2배 곱*
문자가 포함되어 있을 땐 제곱값에 2 해주고, 앞에 값도 2 해줘야 하므로 cnt로 세줌#
문자가 포함되어 있을 땐 제곱값에 -1 곱해줌import java.util.Arrays;
class Solution {
public int solution(String dartResult) {
int answer = 0;
String[] num = dartResult.split("\\D+");
String[] operate = dartResult.split("[0-9]+");
double before = 0;
int cnt=0;
for(int i=operate.length-1;i>=1;i--){
int score = Integer.parseInt(num[i-1]);
int pow = 0;
if(operate[i].contains("S")) pow = 1;
if(operate[i].contains("D")) pow = 2;
if(operate[i].contains("T")) pow = 3;
before = Math.pow(score,pow);
if(cnt == 1) {
before*=2;
cnt=0;
}
if(operate[i].contains("*")) {
cnt++;
before *= 2;
}
if(operate[i].contains("#")) before *= -1;
answer+=before;
}
return answer;
}
}