// 3번 던짐
// S: 1제곱, D: 2제곱, T: 3제곱
// *: 해당 점수와 바로 전에 얻은 점수 각 2배. 처음에도 나올 수 있음. 첫 스타상의 점수만 두 배가 됨. 다른 스타상의 효과와 중첩될 수 있으며 이 경우 점수는 4배가 된다. 아차상의 효과와도 중첩될 수 있으며 중첩된 아차상#의 점수는 -2배가 된다.
// S, D, T은 점수마다 하나씩 존재한다.
// #: 해당 점수 마이너스
// *, #은 점수마다 둘 중 하나만 존재할 수 있으며 존재하지 않을 수도.
function solution(dartResult) {
let answer=0;
var calculation = [];
let numberIs=0;
for (let i=0;i<dartResult.length;i++){
if (+dartResult[i] <=9 && +dartResult[i]>=0 ){
if (+dartResult[i]===1 && +dartResult[i+1]===0){
numberIs=10;
i+=1;
}else{
numberIs=+dartResult[i];
}
}else if (dartResult[i]==='S'){
calculation.push(Math.pow(numberIs,1));
}else if (dartResult[i]==='D'){
calculation.push(Math.pow(numberIs,2))
}else if (dartResult[i]==='T'){
calculation.push(Math.pow(numberIs, 3));
}else if (dartResult[i]==='#'){
calculation[calculation.length-1]=calculation[calculation.length-1]*-1;
}else if (dartResult[i]==='*'){
calculation[calculation.length-1] *= 2;
calculation[calculation.length-2] *= 2;
}
}
for (let i=0;i<calculation.length;i++){
answer+=Number(calculation[i])
}
console.log(calculation)
return answer;
}