공부기록/자바스크립트 코딩테스트

[프로그래머스/JS] 1차 다트게임

_우지 2022. 6. 22. 17:53

 

문제링크

 

코딩테스트 연습 - [1차] 다트 게임

 

programmers.co.kr

 

배운점

dd[i] 는 '0' 문자 인데, 자바스크립트에서는 숫자와 비교연산을 할때 자동으로 형변환이 된다.

if(dd[i]>=0 && dd[i]<=9)

 

문제풀이

function solution(dartResult) {
    var answer = 0;
    let dd = dartResult
    let ans = []
    let idx = 0
    for (let i=0; i<dd.length; i++){
        // 자바스크립트의 자동 형변환 숫자와 비교할때의
        if(dd[i]>=0 && dd[i]<=9){
            if(dd[i]==1 && dd[i+1]==0){
                i++
                ans.push(10)
            }
            else{
                ans.push(+dd[i])
            }
        }
        else if(dd[i]=='S'){
            ans[idx] = ans[idx]
            idx ++
        }
        else if(dd[i]=='D'){
            ans[idx] = ans[idx] *ans[idx] 
             idx ++
        }
        else if(dd[i]=='T'){
             ans[idx] = ans[idx] *ans[idx] *ans[idx] 
             idx ++
        }
        else if(dd[i]=='*'){
            if(idx==1){
                ans[idx-1]*=2
            }
            else {
                ans[idx-2]*=2
                ans[idx-1]*=2
            }
        }
          else if(dd[i]=='#'){
                ans[idx-1]=-ans[idx-1]
        }
    }
    ans.map(el=>answer+=el)
    return answer;
}