코딩테스트 기록/04. Queue

[백준] 1966: 프린터 큐 (Pyhton)

박세류 2023. 11. 8. 22:06
 

1966번: 프린터 큐

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

www.acmicpc.net

 

1. 문제 접근 방식

큐를 이용하고, 문제의 조건에 충실하여 시뮬레이션 했다.

그러다보니 조금 코드가 길어진 감도 있긴한데, 직관적이어서 보기는 좋은거같다.

 

 

2. 풀이 코드

from collections import deque


def solution(N, M, im):
    queue = deque()
    answer = 0
    find = ''
    count = 1

    for i in range(0, N):
        if i == M:
            find = chr(ord('A') + i)
        D = {chr(ord('A') + i): im[i]}
        queue.append(D)

    while len(queue) > 0:
        p = queue.popleft()
        (key, value), = p.items()

        if value == max(im):
            if key == find:
                answer = count
                break
            else:
                count += 1
                im.remove(max(im))
        else:
            queue.append(p)

    return answer


T = int(input())

for i in range(T):
    N, M = map(int, input().split())
    im = list(map(int, input().split()))
    print(solution(N, M, im))

 

 

 

728x90

'코딩테스트 기록 > 04. Queue' 카테고리의 다른 글

[백준] 11866: 요세푸스 문제 0 (Python)  (1) 2023.11.08