[알고리즘] 백준 1966 : 프린터 큐 - S3

eternal moment·2023년 5월 19일
0

2023.05.19 풀이

import sys
input=sys.stdin.readline
from collections import deque

for _ in range(int(input())):
    n,m=map(int, input().split())
    arr=deque(map(int, input().split()))

    cnt=0
    while arr:
        maximun=max(arr)
        left=arr.popleft()
        m-=1
        if maximun==left:
            cnt+=1
            if m<0:
                print(cnt)
                break
        else:
            arr.append(left)
            if m<0:
                m=len(arr)-1

다른 풀이

import sys
from collections import deque
input = sys.stdin.readline

n = int(input())

for i in range(n):
	a, b = map(int, input().split())
	q = deque()
	booler = deque(0 for i in range(a))
	booler[b] = 1
	cnt = 0
	num = list(map(int, input().split()))
	for i in num:
		q.append(i)
	while True:
		if q[0] == max(q):
			cnt += 1
			if booler[0] == 1:
				print(cnt)
				break
			else:
				q.popleft()
				booler.popleft()
		else:
			q.append(q.popleft())
			booler.append(booler.popleft())

check point

--

0개의 댓글