[프로그래머스] 다트 게임 (javascript)

728x90
반응형

숫자 10만 예외 처리를 해주고 현재가 1이고 다음 수가 0일때는 10 (유일하게 두 글자인 숫자라 예외처리)

나머지는 주어진 조건대로 차근차근 수행한다.

function solution(dart) {
    var answer = [];
    for(let i=0;i<dart.length;i+=1){
        if(dart[i]>='0' && dart[i]<='9'){
            if(dart[i]=='1' && i+1<dart.length && dart[i+1]=='0'){
                answer.push(10);
                i+=1;
            }else{
                 answer.push(+dart[i]);
            }
           
        }
        if(dart[i]==='D'){
            let last=answer[answer.length-1];
            answer[answer.length-1]=Math.pow(last,2);
        }else if(dart[i]==='T'){
            let last=answer[answer.length-1];
            answer[answer.length-1]=Math.pow(last,3);
        }
        if(dart[i]==='*'){
            answer[answer.length-1]*=2;
            if(answer.length>=2){
                answer[answer.length-2]*=2;
            }
        }
        if(dart[i]==='#'){
            answer[answer.length-1]*=-1;
        }
    }
    return answer.reduce((acc,cur)=>acc+cur,0);
}
728x90
반응형
TAGS.

Comments