새소식

Programmers

[Programmers] 프린터 문제 - (javascript)

  • -
728x90
문제 이름 :  프린터

 

<<< 문제 내용 >>>

 

function solution(p, l) {
    let answer = 0;
    
    // 가장 큰 수인지 확인을 위해 깊은복사한 후 내림차순으로 정렬
    let comp = [...p].sort((a,b)=>b-a);
    
    while(true){
    	// p의 첫번째가 가장 큰 수이면
        // 횟수를 1회 올리며, 현재 위치가 0(내가 뽑고자했던 것이 뽑히는 상황)이면
        // 정답을 출력하고, 그 외에는 comp와 p를 하나씩 제외하고 l을 줄입니다.
        if(p[0] === comp[0]){
            answer+=1;
            if(l === 0){
                return answer;
            }
            comp.shift();
            p.shift();
            l--;
        }else{
            p.push(p.shift());
            l--;
        }
        
        // 위의 연산이 끝나면 l위치가 -가 될 수 있는데, 이때 제 위치로 돌려줍니다.
        if(l<0){
            l=p.length-1;
        }
    }
    
    return answer;
}

 

 

도움이 되셨다면 공감 부탁드립니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.