문제 설명
•
바쁜 카페에서, 특정 시간 동안 카페에 머물러 있는 최대 손님 수를 구하는 문제
예제 입력/출력
menu | order | k | result |
[5, 12, 30] | [1, 2, 0, 1] | 10 | 3 |
[5, 12, 30] | [2, 1, 0, 0, 0, 1, 0] | 10 | 4 |
[5] | [0, 0, 0, 0, 0] | 5 | 1 |
제약 조건
•
◦
menu의 원소
•
•
문제 풀이
접근1 브루트 포스 - 상한
풀이 코드
•
접근1 브루트 포스 - 상한
from collections import deque
def solution(menus, orders, k):
orders = deque(orders)
waits = deque()
cnt = 0
for t in range(k * len(orders) + 1):
# 1. 음료 제작 및 나가는 손님 퇴장
if waits:
waits[0] -= 1
if waits[0] == 0:
waits.popleft()
# 2. 들어오는 손님 입장
if orders and t % k == 0:
waits.append(menus[orders.popleft()])
# 3. 대기 손님 수 카운팅
cnt = max(cnt, len(waits))
return cnt
Python
복사