본문 바로가기
코딩테스트/LV. 1

LV. 1 :: 다트 게임

by KUROMI98 2023. 2. 1.

https://school.programmers.co.kr/learn/courses/30/lessons/17682

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

function solution(dartResult) 
{
    var arr = [];
    var temp=0;
    
    for (i=0; i<dartResult.length; i++)
    {
        if(dartResult[i]==1) // 원소가 1이면
        {//뒤에거 0이면 temp에 10넣고 뒤에꺼 0아니면 temp에 1넣음
            if(dartResult[i+1]==0) temp=10;
            else temp=1;
        } 
        
        else if( (dartResult[i]>=2) && (dartResult[i]<=9) ) // 원소가 2,3,4,5,6,7,8,9 면
        {// temp에 dartResult[i]넣음
            temp = dartResult[i];
        } 
        
        else if(dartResult[i]=='S') // 원소가 S면
        { //temp**1함 temp를 arr에 push하고 temp를 0으로 만듬
            temp = temp**1;
            arr.push(temp);
            temp=0;
        }
        
        else if(dartResult[i]=='D') // 원소가 D면
        { //temp**2함 temp를 arr에 push하고 temp를 0으로 만듬
            temp = temp**2;
            arr.push(temp);
            temp=0;
        }
        
        else if(dartResult[i]=='T') // 원소가 T면
        { //temp**3함 temp를 arr에 push하고 temp를 0으로 만듬
            temp = temp**3;
            arr.push(temp);
            temp=0;
        } 
        
        else if(dartResult[i]=='#') // # 나오면
        { //arr의 마지막원소를 -1 곱해준다음에 그걸로 바꿔줌
            arr.splice(arr.length-1, 1, arr[arr.length-1]*(-1)); 
        }

        else if(dartResult[i]=='*') // * 나오면
        { 
            arr.splice(arr.length-1, 1, arr[arr.length-1]*2); 
            // 일단마지막원소를 2배해줌
            
            if(arr.length!==1) 
            { // arr의길이가 1이 아니면 arr의 마지막 전 원소를 2배해줌 
                 arr.splice(arr.length-2, 1, arr[arr.length-2]*2); 
            } 
        }
    }
    
    var sum=0;
   
    for(i=0; i<arr.length; i++)
    {
        sum += arr[i];
    }
    
    return sum;
}

'코딩테스트 > LV. 1' 카테고리의 다른 글

LV. 1 :: [1차] 비밀지도  (0) 2023.02.01
LV. 1 :: 키패드 누르기  (0) 2023.02.01
LV. 1 :: 폰켓몬  (0) 2023.02.01
LV. 1 :: 예산  (0) 2023.01.31
LV. 1 :: K번째 수  (0) 2023.01.31

댓글