PS

[BOJ] Python 백준 강의실(1347)

1223v 2024. 11. 15. 23:29

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

 

끝시간보다 시작시간이 크면 같은 강의실에 들어갈 수 있다는 의미이므로, 앞시간은 빼도 된다. 즉, 모든 끝시간을 넣었을 때, heapq가 가장 길었을때가 겹치는 시간이 제일 많은 시간대이므로 강의실이 가장 많이 쓰이던 상황이니 최대값을 계속 갱신해주면 된다. 

#https://www.acmicpc.net/problem/1374

import sys
import heapq
input = sys.stdin.readline

N = int(input())
s = [list(map(int,input().split())) for _ in range(N)]
s.sort(key=lambda x : x[1])
hq = []
cnt = 0
for i in s:
    while hq and hq[0] <= i[1]:
        heapq.heappop(hq)
    heapq.heappush(hq,i[2])
    cnt = max(cnt, len(hq))

print(cnt)

 

회고.

문제 접근하여 답은 도출했으나 메모리 초과가 떴다... 그 이후 어떻게 접근해야될지 감이 잡히지 않아 결국 답을 보고 해결했다....하.....