리셋 되지 말자

[백준 1966] 프린터 큐 - 큐 본문

알고리즘

[백준 1966] 프린터 큐 - 큐

kyeongjun-dev 2022. 1. 18. 15:38

코드

from collections import deque
def solution(b, arr):
    # target인 작업 index b에 대한 타겟 여부를 1(타겟) 변경
    arr[b][1] = 1
    dq = deque(arr)

    cnt = 1
    while len(dq) != 0:
        # 맨 앞에 있는 작업이 중요도가 제일 높으면
        if dq[0][0] == max(dq)[0]:
            # 중요도가 제일 높은데 타겟이면 cnt 출력 후 종료
            if dq[0][1] == 1:
                print(cnt)
                break
            # 중요도가 제일 높은데 타겟이 아니면 작업 pop, cnt 증가
            dq.popleft()
            cnt += 1
        # 중요도가 제일 높은 작업이 아니면, 작업을 뒤로 넘김
        else:
            dq.append(dq[0])
            dq.popleft()

n = int(input())

for _ in range(n):
    a, b = map(int, input().split())
    arr = []
    for imp in list(map(int, input().split())):
        # target이 아닌 작업은 [중요도, 0]
        # target인 작업은 [중요도, 1]
        arr.append([imp, 0])
    solution(b, arr)
Comments