프로그래머스 : 다트 게임

KHW·2021년 7월 2일
0

알고리즘

목록 보기
34/37

출처
100/100 (나중에 혼자푼거)

일반적인 내용

숫자 + 문자 + 특수문자(선택) 형태로 계산한다.

숫자는 0~10
문자는 S,D,T
특수문자는 *,#

작성한 코드

function solution(dartResult) {
    let beforeNum = 0;
    let val=0;
    let answer = 0

    for(let i=0;i<dartResult.length;i++)
        {
            if(Number(dartResult[i]) >-1 && Number(dartResult[i+1]) > -1)
                {
                    answer += beforeNum;
                    beforeNum = val;
                    val = 10;   
                    i++;
                }
            else if(Number(dartResult[i]) > -1 ){
                answer += beforeNum;
                beforeNum = val;
                val = Number(dartResult[i]); 
            }
            else if(dartResult[i] == 'D'){
                val= Math.pow(val,2);
            }
            else if(dartResult[i] == 'T'){
                val = Math.pow(val,3);
            }
            else if(dartResult[i] == '#') {
                val = -val;
            }
            else if(dartResult[i] == '*'){
                beforeNum*=2;
                val*=2;
            }

        }
    return (answer+beforeNum+val)
}

if => 10일때
else if => 그외의 숫자일때
else if => 'D'일때
else if => 'T'일때
else if => '#'일때
else if => '*'일때

마지막 return에는 처리했던 나머지 beforNum과 val을 추가한 결과를 return한다.

profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자

0개의 댓글