Python으로 구현한 1966번 프린터 큐 문제 풀이입니다.
https://www.acmicpc.net/problem/1966
1966번: 프린터 큐
여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에
www.acmicpc.net
t = int(input())
for _ in range(t) :
n, m = map(int, input().split())
priority = list(map(int, input().split()))
check = [0 for _ in range(n)]
check[m] = 1
count = 0
while True :
if priority[0] == max(priority) :
count += 1
if check[0] == 1 : # 찾을 값이면
print(count)
break
else :
priority.pop(0)
check.pop(0)
else :
priority.append(priority.pop(0))
check.append(check.pop(0))
1. 각 테스트 케이스마다 입력받은 n개의 0 값을 저장한 check 리스트를 생성하고, check[m] 을 1로 갱신한다.
2. 아래와 같은 작업을 반복 수행한다.
- 만약 priority의 가장 첫 번째 요소가 최댓값과 같다면 count를 1증가시킨다.
- 만약 check의 가장 첫 번째 요소가 1일 경우 찾을 값이므로 count를 출력한 후 break 한다.
- check[0]이 1이 아닐 경우 priority의 가장 첫 번째 요소와 check의 가장 첫 번째 요소를 빼낸다.
- 만약 priority[0]이 최댓값이 아닐 경우 priority의 가장 첫 번째 요소와 check의 가장 첫 번째 요소를 각각 빼내어 뒤로 넘겨 준다.
'백준(Python) 풀이 > 구현' 카테고리의 다른 글
백준(Python) 17135번 캐슬 디펜스 풀이 (0) | 2022.08.26 |
---|---|
백준(Python) 5430번 AC 풀이 (0) | 2022.07.07 |
백준(Python) 2750번 수 정렬하기 풀이 (0) | 2022.06.29 |
백준(Python) 23290번 마법사 상어와 복제 풀이 (0) | 2022.04.30 |
백준(Python) 23291번 어항 정리 풀이 (0) | 2022.04.29 |