본문 바로가기

알고리즘

[백준] 26042 식당 입구 대기 줄

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

 

해당 문제를 풀기 위해서는 큐를 이용해야 하며, 입력 내용이 많기 때문에 빠른 입력을 통해 받아줘야 한다.

 

from collections import deque
import sys
n = int(input())
line = deque()
line_cnt = 0
ans = [0, 1000000]
for _ in range(0,n):
    data = sys.stdin.readline().split()
    if(data[0] == '1'): 
        # 입장
        _, stu = map(int,data)
        line.append(stu)
        line_cnt += 1
        # 갯수가 같으면
        if(ans[0] == line_cnt):
            # 가장 뒷자리중 숫자가 작은아이 고르기
            ans[1] = min(line[line_cnt - 1], ans[1])
        elif(ans[0] < line_cnt):
            # 맨 마지막 아이 넣기
            ans[1] = line[line_cnt - 1]
            ans[0] = line_cnt
    else:
        # 식사완료
        line.popleft()
        line_cnt -= 1
print(f'{ans[0]} {ans[1]}')