JiSoo's Devlog
[백준 / 파이썬] 1966번 프린터 큐 본문
from collections import deque
t = int(input())
for i in range(t):
n, m = map(int, input().split())
a = deque(list(map(int, input().split())))
c = 0
while(a):
b = max(a)
f = a.popleft()
m -= 1
if b == f:
c += 1
if m < 0:
print(c)
break
else:
a.append(f)
if m < 0:
m = len(a) - 1
몇 번째로 출력되는지 알고 싶은 궁금한 문서가 남은 큐 중에서 가장 큰 수가 될 때까지 검사
알고 싶은 문서의 인덱스를 m으로 계산
제일 앞에 있는걸 popleft로 뽑고 알고 싶은 문서 m의 위치가 앞으로 당겨지기 때문에 -1 해준다
만약 제일 앞에 숫자가 제일 큰 숫자라면 c +1 해서 1이 출력되게 하고 만약 m이 0이어서 -1 해준 후 음수가 되었다면 알고 싶은 문서가 맨 앞에 있던 숫자라는 뜻
제일 처음 숫자가 가장 큰 수가 아니라면 append로 제일 뒤로 추가
728x90
'코테준비' 카테고리의 다른 글
[백준 / 파이썬] 15829번 Hashing (0) | 2024.01.14 |
---|---|
[백준 / 파이썬] 1654번 랜선 자르기 (1) | 2024.01.14 |
[백준 / 파이썬] 18110번 solved.ac (1) | 2024.01.14 |
[백준 / 파이썬] 1874번 스택 수열 (0) | 2024.01.14 |
[백준 / 파이썬] 2231번 분해합 (0) | 2024.01.13 |