[BOJ] 1966 프린터 큐 (python)

백준 1966: 프린터 큐 (파이썬)

 

1966번: 프린터 큐

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

www.acmicpc.net

# [BOJ] 1966. 프린터 큐

T = int(input())
for tc in range(T):
    # N: 문서의 개수, M: 현재 queue에서의 위치
    N, M = map(int, input().split())
    ans = 0

    # N개 문서의 중요도
    imp = list(map(int, input().split()))
    L = ['o'] * N
    L[M] = 'x'

    while 'x' in L:
        # 맨 앞 값보다 중요도가 높은 값이 하나라도 있는 경우
        while imp[0] < max(imp):
            L.append(L.pop(0))
            imp.append(imp.pop(0))

        if imp[0] == max(imp):
            L.pop(0)
            imp.pop(0)
            ans += 1

    print(ans)

입력값 양식을 이해하는 데 오히려 시간이 오래 걸렸다

가상의 값 o들과 특정 값 x를 이용한 리스트를 새로 만들고

중요도 리스트와 동시에 관리

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 11976. Promotion Counting (python)  (0) 2022.12.17
[BOJ] 2805 나무 자르기 (python)  (0) 2022.12.12
[BOJ] 4949 균형잡힌 세상 (python)  (0) 2022.12.10
[BOJ] 2217 로프 (python)  (0) 2022.11.27
[BOJ] 10989 수 정렬하기 3 (python)  (0) 2022.10.03