function solution(dartResult) {
let answer = [];
let score = 0;
for (let i = 0; i < dartResult.length; i++) {
if (!isNaN(dartResult[i])) {
score = +dartResult[i - 1] === 1 ? 10 : +dartResult[i];
} else {
if (dartResult[i] === "S") {
answer.push(score);
}
if (dartResult[i] === "D") {
answer.push(Math.pow(score, 2));
}
if (dartResult[i] === "T") {
answer.push(Math.pow(score, 3));
}
if (dartResult[i] === "*") {
answer[answer.length - 2] *= 2;
answer[answer.length - 1] *= 2;
}
if (dartResult[i] === "#") {
answer[answer.length - 1] *= -1;
}
}
}
console.log(answer);
return answer.reduce((a, c) => a + c, 0);
}
문제의 조건대로 풀어내면 된다. 문자열을 잘 다뤄야겠다.