본문 바로가기

Programming/Programmers

[프로그래머스/Python] 프린터(큐)

 

코딩테스트 연습 - 프린터

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

programmers.co.kr

 

idx를 가지고 다니는 방식으로 작성했다.

 

from collections import deque
def solution(priorities, location):
    answer = 0
    q = deque()
    for idx, paper in enumerate(priorities):
        q.append([paper, idx])
    
    while q:
        cur = q.popleft()
        paper, idx = cur[0], cur[1]

        #우선순위 체크
        flag = 1
        for i in q:
            if i[0] > paper:
                flag = 0
                break
                
        if flag == 0: # 자기보다 큰게 있으면 뒤로 보내기
            q.append([paper, idx])
        if flag == 1: #자기보다 큰게 없으면 print
            answer += 1
            if idx == location:
                break

    return answer