본문 바로가기
알고리즘 풀이/자료구조

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

by developer jini 2023. 1. 9.
728x90

https://www.acmicpc.net/problem/1966

 

1966번: 프린터 큐

여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에

www.acmicpc.net

import sys

t = int(sys.stdin.readline())

for _ in range(t):
    n, m = map(int, sys.stdin.readline().split())
    # q = 중요도
    q = (list(map(int, sys.stdin.readline().split())))
    # arr = 순서
    arr = list(range(len(q)))
    # 내가 원하는 순서
    arr[m] = "target"

    cnt = 0

    while True:
        # 중요도가 가장 높으면
        if q[0] == max(q):
            # 출력순서 = cnt
            cnt += 1
            # 중요도가 가장 높고 원하는 순서이면 cnt 출력 while문 종료
            if arr[0] == "target":
                print(cnt)
                break
            # 원하는 순서가 아니면 리스트에서 삭제(프린터 출력)
            else:
                del q[0]
                del arr[0]
        # 중요도가 가장 높지 않으면
        else:
            # 출력 순서를 뒤로 배치
            q.append(q[0])
            del q[0]
            arr.append(arr[0])
            del arr[0]

 풀이가 떠오르지 않아 이것저것 시도해본 결과 실패 . 다른 블로그 참조하여 작성하였음.

728x90

댓글