알고리즘/스택 \ 큐 \ 덱
#53 [파이썬] 프로그래머스 : 프린터
채채씨
2022. 4. 8. 22:29
728x90
반응형
<문제>
https://programmers.co.kr/learn/courses/30/lessons/42587
<코드>
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
반응형