본문 바로가기
Study Note/Algorithm

프로그래머스 #스택/큐 - 프린터 lv2

by 시뮝 2021. 9. 10.
728x90

문제

 

풀이

function solution(priorities, location) {
    let answer = 0;
    
    let seq = location;
    let len = priorities.length;
    let result = priorities;
    
    let printList = [];
    let stop = true;
    
    while (stop) {
        if (printList.length === len) {
            stop = false; 
            break; // 탐색 완료 
        }
        const targetPrint = result[0];
        const remainPrints = result.slice(1);
        
        if(remainPrints.find((print) => print > targetPrint)) {
            // 뒤에 큰 숫자가 있으므로 인쇄 순서 맨 뒤로 이동
            result.push(result.shift());

            if (0 === seq) {
                seq = result.length - 1; 
            } else {
                seq = seq - 1;
            }
            
        } else {
            printList.push(result.shift());
            seq = seq - 1;
            
            if (seq < 0) {
                stop = false;
                break; // 탐색 완료 
            }
        }
    }
    answer = printList.length;
    return answer;
}

 

채점 결과

728x90

댓글