2018 카카오 블라인드 채용
function solution(dartResult) {
let arr = [];
let score;
for (let i = 0; i < dartResult.length; i++) {
if (!isNaN(dartResult[i])) {
// ✅ 숫자인 경우
score = Number(dartResult[i - 1]) === 1 ? 10 : Number(dartResult[i]);
continue;
}
switch(dartResult[i]) {
case 'S':
arr.push(score);
break;
case 'D':
arr.push(score ** 2);
break;
case 'T':
arr.push(score ** 3);
break;
case '*':
arr[arr.length - 2] *= 2;
arr[arr.length - 1] *= 2;
break;
case '#':
arr[arr.length - 1] *= -1;
break;
}
}
return arr.reduce((prev, curr) => prev + curr, 0);
}