본문 바로가기
Basic/Algorithm

다트 게임

by egas 2021. 8. 4.

알고리즘도 풀어보자. 

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

'Basic > Algorithm' 카테고리의 다른 글

숫자 문자열과 영단어  (0) 2021.08.13
비밀지도  (0) 2021.08.13
로또의 최고 순위와 최저 순위  (0) 2021.08.13

댓글