JiSoo's Devlog

[백준 / 파이썬] 1966번 프린터 큐 본문

코테준비

[백준 / 파이썬] 1966번 프린터 큐

지숭숭숭 2024. 1. 14. 17:59

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