IT/Algorithm

프로그래머스) 프린터

프티 2021. 11. 24. 13:46
반응형

https://programmers.co.kr/learn/courses/30/lessons/42587

 

코딩테스트 연습 - 프린터

일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린

programmers.co.kr

나의 풀이)

이번 알고리즘도 풀지 못하였다. 제한 시간을 2시간으로 두고 풀어보았고, 수 차례 쓰고 지우고를 반복했지만 무엇인가 벽이 느껴졌다.

아이디어 힌트를 얻고 풀긴 했지만 2단계에 들어서고부터는 계속 힌트를 얻어 풀고있는데 만족스럽지 못하다.

 

function solution(priorities, location) {
    let rank = 0;
    
    while (priorities.length) {
        if (priorities[0] < Math.max(...priorities)) {
            if (--location < 0) location = priorities.length - 1;
            
            priorities.push(priorities.shift());
        } else {
            rank += 1;
            
            if (--location < 0) return rank;
            
            priorities.shift();
        }
    }
}​

값이 최대값보다 작으면

후위 감소를 사용하여 location인지 확인하고,

shift값을 바로 push 하여 priorities 자체를 스택으로 활용하였다.

 

값이 최대값보다 크다면

rank를 올리고 후위 감소를 사용하여 타깃인지 확인하여 rank를 반환했다.

그리고 shift하여 출력하였다. 

반응형

'IT > Algorithm' 카테고리의 다른 글

leetCode) 35. Search Insert Position  (0) 2021.11.26
프로그래머스) 카펫  (0) 2021.11.26
프로그래머스) 구명보트  (0) 2021.11.23
프로그래머스) 큰 수 만들기  (0) 2021.11.21
프로그래머스) 124 나라의 숫자  (0) 2021.10.29