본문 바로가기
알고리즘/스택 \ 큐 \ 덱

#53 [파이썬] 프로그래머스 : 프린터

by 채채씨 2022. 4. 8.
728x90
반응형

<문제>

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

 

코딩테스트 연습 - 프린터

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

programmers.co.kr

 


 

<코드>

def solution(priorities, location):
    answer = 0
    pin = 0
    while priorities:
        if priorities[0] < max(priorities):
            if pin == location:
                location = len(priorities)
                pin = 0
            priorities.append(priorities.pop(0))
        else:
            priorities.pop(0)
            answer += 1            
            if pin == location:
                return answer
        pin += 1

 


 

<NOTE>

  • answer을 통해 인쇄 완료한 것의 개수를 카운팅하여 내가 원하는 작업물이 몇 번째로 인쇄되는지 파악한다.
  • 이 문제의 핵심은 location위치의 프린트물을 추적하는 것이다. pin을 통해 현재 위치를 파악하며, pin과 location이 일치하는데 인쇄할 수 없다면 맨 마지막으로 보내야하기 때문에 location을 len(priorities)로 옮기고 pin도 0으로 초기화한다. location을 len(priorities) - 1로 하지 않은 이유는 while문 마지막에 pin += 1으로 pin의 개수를 올려주도록 해두었기 때문이다.
728x90
반응형

댓글