본문 바로가기

알고리즘 문제풀이

백준 1966 프린터 큐 Python 자료 구조 큐 실버 3

큐의 자료구조형에 대한 이해 + 문제 풀이 방법

큐의 자료구조형에 대해서는 이해했으나, 문제풀이에 어려움이 있었음

16퍼 짜리 오답

# 1966 프린터 큐 실버3
from collections import deque
t = int(input())
for _ in range(t):
    n,m = map(int,input().split())
    prioritys = list(map(int,input().split()))
    priority = deque()
    for i in range(len(prioritys)):
        priority.append((i,prioritys[i]))
    want = priority[m]
    cnt = 1
    while priority:
        if max(priority, key=lambda x:x[1]) > priority[0]:
            a = priority.popleft()
            priority.append(a)
        elif priority[0] == want:
            break
        else:
            priority.popleft()
            cnt += 1
    print(cnt)
# 1966 프린터 큐 실버3
from collections import deque
t = int(input())
for _ in range(t):
    n,m = map(int,input().split())
    prioritys = list(map(int,input().split()))
    priority = deque()
    for i in range(len(prioritys)):
        priority.append((i,prioritys[i]))
    # print(priority)
    cnt = 0
    while priority:
        if priority[0][1] == max(priority, key=lambda x:x[1])[1]:
            cnt += 1
            if priority[0][0] == m:
                print(cnt)
                break
            else:
                priority.popleft()
        else:
            priority.append(priority.popleft())