[프로그래머스 Lv.1] 2018 KAKAO BLIND RECRUITMENT - [1차] 다트 게임

김민지·2023년 12월 23일
0

✨ 문제 ✨


✨ 정답 ✨

// 3번 던짐
// S: 1제곱, D: 2제곱, T: 3제곱
// *: 해당 점수와 바로 전에 얻은 점수 각 2배. 처음에도 나올 수 있음. 첫 스타상의 점수만 두 배가 됨. 다른 스타상의 효과와 중첩될 수 있으며 이 경우 점수는 4배가 된다. 아차상의 효과와도 중첩될 수 있으며 중첩된 아차상#의 점수는 -2배가 된다.
// S, D, T은 점수마다 하나씩 존재한다.
// #: 해당 점수 마이너스
// *, #은 점수마다 둘 중 하나만 존재할 수 있으며 존재하지 않을 수도.

function solution(dartResult) {
    let answer=0;
    var calculation = [];
    let numberIs=0;
    for (let i=0;i<dartResult.length;i++){
        if (+dartResult[i] <=9 && +dartResult[i]>=0 ){
            if (+dartResult[i]===1 && +dartResult[i+1]===0){
                numberIs=10;
                i+=1;
            }else{
                numberIs=+dartResult[i];
            }
        }else if (dartResult[i]==='S'){
            calculation.push(Math.pow(numberIs,1));
        }else if (dartResult[i]==='D'){
            calculation.push(Math.pow(numberIs,2))
        }else if (dartResult[i]==='T'){
            calculation.push(Math.pow(numberIs, 3));
        }else if (dartResult[i]==='#'){
            calculation[calculation.length-1]=calculation[calculation.length-1]*-1;
        }else if (dartResult[i]==='*'){
            calculation[calculation.length-1] *= 2;
            calculation[calculation.length-2] *= 2;
        }
    }
    for (let i=0;i<calculation.length;i++){
        answer+=Number(calculation[i])
    }
    console.log(calculation)
    return answer;
}

🧵 참고한 정답지 🧵

💡💡 기억해야 할 점 💡💡

profile
이건 대체 어떻게 만든 거지?

0개의 댓글

관련 채용 정보