[알각코] 인프런 5-6 응급실(큐)

응급실

문제 정보는 인프런의 파이썬 알고리즘 문제풀이 코딩테스트에 있습니다!

문제풀이

import sys
import collections from deque
sys.stdin = open("input.txt", "r")

n, m = map(int, input().split())
# 예시: [(0, 60), (1, 50), (2, 70)]
Q = [(pos, Val) for pos, val in enumerate(list(map(int, input().split())))]
Q=deque(Q)
cnt=0

while True:
  # 제일 앞에 튜플 꺼내기
  cur=Q.popleft()
  # 단 한 개라도 참이되면 무조건 참
  # 꺼낸 튜플값이 리스트의 튜플값보다 작을때
  if any(cur[1]<x[1] for x in Q):
    # 뒤에 다시 추가
    Q.append(cur) 
  # 모두 참이 아닐때
  else:
    # 제일 큰 튜플 값이므로 카운트 증가
    cnt+=1
    # m번째 손님이 진료를 받을때 몇번째(cnt) 진료인지
    if cur[0]==m:
      print(cnt)
      break