Koala - 9기/기초 알고리즘 스터디
[백준/python] 1966번 : 프린터 큐
shlinn
2023. 2. 6. 21:08
https://www.acmicpc.net/problem/1966
1966번: 프린터 큐
여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에
www.acmicpc.net
문제 코드
문제 풀이
문제에서
가장 앞에 있는 문서의 중요도가 가장 높으면 바로 인쇄한다
= popleft 를 사용해야 하므로 deque 를 사용.
for 문을 활용하여 T 만큼 반복, 반복문 내에서 N,M 과 N개의 문서 중요도 a를 입력.
whlie을 활용하여 원하는 문서 a[M] 을 출력할 때 까지 반복.
1) a[M] 이 a의 맨 앞에 있을 때,
1-1) 이를 a의 가장 큰 수와 비교하여 a[M] 이 가장 크다면 현재 출력순서인 cnt 를 출력한 후 break
1-2) a[M] 이 가장 큰 수가 아니라면 이를 맨 뒤로 보내고 다시 반복.
2) a[M] 이 a의 맨 앞에 있지 않다면 a[0]이 a에서 가장 큰 수인지 확인.
2-1) 가장 큰 수라면 이를 popleft 하고 a[0]이 제거되었으므로 문서의 개수 N 과 원하는 문서의 번호인 M 을 -1 해줌.
2-2) 가장 큰 수가 아니라면 이를 맨 뒤로 보내고 다시 반복.