Adventure Time - Finn 3
본문 바로가기
코테연습/python

응급실 (큐)

by hyun9_9 2026. 4. 29.

메디컬 병원 응급실에는 의사가 한 명밖에 없습니다. 응급실은 환자가 도착한 순서대로 진료를 합니다. 하지만 위험도가 높은 환자는 빨리 응급조 치를 의사가 해야 합니다. 이런 문제를 보완하기 위해 응급실은 다음과 같은 방법으로 환자의 진료순서를 정합니다. • 환자가 접수한 순서대로의 목록에서 제일 앞에 있는 환자목록을 꺼냅니다. • 나머지 대기 목록에서 꺼낸 환자 보다 위험도가 높은 환자가 존재하면 대기목록 제일 뒤로 다시 넣습니다. 그렇지 않으면 진료를 받습니다. 즉 대기목록에 자기 보다 위험도가 높은 환자가 없을 때 자신이 진료를 받는 구조입니다. 현재 N명의 환자가 대기목록에 있습니다. N명의 대기목록 순서의 환자 위험도가 주어지면, 대기목록상의 M번째 환자는 몇 번째로 진료 를 받는지 출력하는 프로그램을 작성하세요. 대기목록상의 M번째는 대기목록의 제일 처음 환자를 0번째로 간주하여 표현한 것입니다.

import sys
# sys.stdin=open("input.txt","rt")
n,m = map(int,input().split())
# n = int(input())
arr = list(map(int,input().split()))

# n = input()
# arr = [list(map(int,input().split())) for _ in range(n)]
# arr = [int(input()) for _ in range(n)]
# arr = list(input())
# print(arr)

from collections import deque
arr= deque((idx,a) for idx,a in enumerate(arr))
cnt = 0
x = arr[m]
# print(arr)
while True:
    
    i,a = arr.popleft()
    # print(a)
    
    if max(arr,key=(lambda x : x[1]))[1] > a:
        arr.append((i,a))
    else:
        cnt+=1
        if (i,a) == x:
            break
    
print(cnt)

'코테연습 > python' 카테고리의 다른 글

쇠막대기 (스택)  (0) 2026.04.29
교육과정 설계(큐)  (0) 2026.04.29
공주 구하기(큐 자료구조로 해결)  (0) 2026.04.29
후위표기식 만들기  (0) 2026.04.28
나누어 떨어지는 숫자 배열  (0) 2026.04.28