Basic/Algorithm
다트 게임
egas
2021. 8. 4. 01:53
알고리즘도 풀어보자.
https://programmers.co.kr/learn/courses/30/lessons/17682?language=javascript
코딩테스트 연습 - [1차] 다트 게임
programmers.co.kr
const bonusType = {
S: (x)=>x,
D: (x)=>Math.pow(x, 2),
T: (x)=>Math.pow(x, 3),
}
const pointType = {
'*': 2,
'#': -1
}
function solution(dartResult) {
const scores = dartResult.split(/\D/).filter((score) => score !== "");
const bonus = dartResult.split(/\d/).filter((x) => x !== "");
let result = []
let prevResultBonus = []
result = scores.map((x, i) => {
if (bonus[i][1] === '*') {
if (i > 0) {
prevResultBonus.push(i - 1)
}
return bonusType[bonus[i][0]](x) * 2;
}
if (bonus[i][1] === '#') {
return bonusType[bonus[i][0]](x) * -1;
}
return Number(bonusType[bonus[i][0]](x))
})
if (prevResultBonus.length > 0) {
prevResultBonus.map((x, i)=> result[x] = result[x] * 2)
}
return result.reduce((acc, cur)=> (acc+=cur))
}
728x90