개미의 개열시미 프로그래밍

[알고리즘] 백준1966 프린터 큐 - 파이썬 본문

알고리즘/그리디 & 구현

[알고리즘] 백준1966 프린터 큐 - 파이썬

YunHyeok 2021. 11. 3. 01:41
728x90
반응형

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

 

1966번: 프린터 큐

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

www.acmicpc.net

 

 

[풀이코드]

from sys import stdin

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

for _ in range(t):
    n, m = map(int, input().split())
    queue = list(map(int, input().split()))
    queue = [(i, idx) for idx, i in enumerate(queue)]

    count = 0
    while True:
        print("test", max(queue, key=lambda x: x[0]))
        if queue[0][0] == max(queue, key=lambda x: x[0])[0]: # 현재 리스트에서 중요도가 제일 큰 수가 올때까지 회전
            count += 1
            if queue[0][1] == m: #궁금한 문서가 맞다면
                print(count)
                break
            else:
                queue.pop(0)    # 궁금한 문서가 아니라면
        else:
            queue.append(queue.pop(0))

- 문제유형 : 큐, 구현, 그리디

- 이렇게 어려운데 왜 난이도가 '하'인지.. 일단 풀이 핵심은 큐를 활용하는 것이었다. 중요도가 제일 큰 수가 올때까지 회전을 하며 카운트해줘야 한다. 

 

728x90
반응형
Comments