본문 바로가기
Problem Solving/BOJ

[Queue] 1966 프린터 큐

by Bokoo14 2023. 1. 7.

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

 

1966번: 프린터 큐

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

www.acmicpc.net

# 2023.01.07
import sys
input = sys.stdin.readline

t = int(input()) # test case
for i in range(t):
    n, m = map(int, input().split())
    number = list(map(int, input().split()))
    index=0
    answer=0 # 프린트해주면 +1씩 증가
    while 1:
        if max(number)==number[index]: # 현재 index의 값이 가장 큰 값이라면?
            answer+=1 # 프린트해줌
            if index==m: # 현재 index의 값이 가장 큰 값이고, 찾는 값이라면?
                print(answer)
                break
            else: # 찾는 값이 아니라면?
                number[index]=-1 # -1을 대입
                index=(index+1)%n
        else: # 가장 큰 값이 아니라면 큐의 제일 뒤로 
            index=(index+1)%n

 

원형 큐를 생각하면 풀기 편하다

'Problem Solving > BOJ' 카테고리의 다른 글

[Brute Force] 1107 리모컨  (0) 2023.01.08
[Brute Force] 18111 마인크래프트  (0) 2023.01.07
[Binary Search] 2805 나무 자르기  (0) 2023.01.06
[BruteForce] 15686 치킨 배달  (0) 2023.01.05
[Sweeping] 2170 선긋기  (0) 2023.01.04