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]}')
'알고리즘' 카테고리의 다른 글
| [99클럽 코테 스터디] [leetcode] 선물이 가장 많은 꾸러미로부터 선물 가져오기 (1) | 2024.11.18 |
|---|---|
| [99클럽/코딩테스트 챌린지] [프로그래머스] 다리를 지나는 트럭 (0) | 2024.11.15 |
| 알고리즘-수업-알고리즘의-수행-시간-6 (1) | 2024.11.12 |
| 백준 7562 나이트의 이동 (3) | 2022.10.31 |
| 백준 1743 음식물 피하기 (0) | 2022.10.29 |