👍 2022년 1월 27일
<script>
const scoreCalculator = (bonus, scoreArr,idx) => {
if (bonus === "S") return parseInt(scoreArr[idx])
else if (bonus === "D") return parseInt(scoreArr[idx])**2
else if (bonus === "T") return parseInt(scoreArr[idx])**3
}
function solution(dartResult) {
let answer = 0;
let scoreArr = dartResult.split(/[A-Z*#]/g);
scoreArr = scoreArr.filter((val, i) => val !== "");
let bonusArr = dartResult.split(/[0-9]/g);
bonusArr = bonusArr.filter((val, i) => val !== "");
let totalScore = [];
bonusArr.filter((v, i) => {
if (v === "S" || v==="D" || v==="T") totalScore.push(scoreCalculator(v, scoreArr, i))
else {
totalScore.push(scoreCalculator(v[0], scoreArr, i));
if (v.includes('*')) {
if (totalScore.length === 1) totalScore[0] *= 2;
else {
totalScore[i] *= 2;
totalScore[i-1] *= 2;
}
}else if (v.includes("#")){
totalScore[i] *= -1;
}
}
})
answer = totalScore.reduce((acc, val) => acc + val);
return answer;
}
</script>