Binary Journey

[프로그래머스] 프린터 본문

프로그래머스/level 2

[프로그래머스] 프린터

binaryJournalist 2022. 5. 11. 21:10
반응형

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

 

 

** Python

 

def solution(priorities, location):
    answer = 0
    queue = [(i, priority) for i, priority in enumerate(priorities)]
    while True:
        now = queue.pop(0)
        if any(now[1] < q[1] for q in queue):
            queue.append(now)
        else:
            answer += 1
            if now[0] == location:
                return answer
    return answer

 

any는 javascript 의 some과 유사한 기능을 한다.

 

if (queue.some(q => q[1] > now[1])

 

 

 

참고: https://jinomadstory.tistory.com/17

 

[프로그래머스] '프린터' 알고리즘 풀이 - Python

Contents 문제 설명 [제한사항] [입출력 예] 알고리즘 분석 [나의 풀이] [Most 1의 풀이] [Most 2의 풀이] 문제 설명  일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요

jinomadstory.tistory.com

 

 

** Javascript

 

 

function solution(priorities, location) {
    var answer = 0;
    let queue = priorities.map((p, i) => ([i, p]));
    while (true) {
        const now = queue.shift();
        if (queue.some(q => q[1] > now[1])) {
            queue.push(now);
        } else {
            answer++;
            if (now[0] == location) return answer;
        }
    }
    return answer;
}
반응형