KEEP GOING

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

code review/stack-queue

[python] 프로그래머스 : 프린터

jmHan 2022. 2. 18. 14:49
반응형

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

 

코딩테스트 연습 - 프린터

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

programmers.co.kr

 

 

1. 코드 구현 

from collections import deque

def solution(priorities, location):
    n = len(priorities)
    que = deque([])
    # 큐에 (인덱스, 문서별 중요도) 추가 
    for i in range(n):
        que.append((i, priorities[i]))
    # 가장 높은 우선순위 
    high_prior = max(que, key=lambda x:x[1])[1]
    # 출력되는 순위 
    count = 1
    while que:
        high_prior = max(que, key=lambda x:x[1])[1]
        idx, now = que.popleft()
        # 우선순위가 가장 높은 문서인 경우 
        if now == high_prior:
            # 원하는 location의 문서였을 경우 
            if idx == location:
                return count
            # 아니라면 순위 +1 증가 
            count += 1
        else:
            que.append((idx, now))
반응형
Comments