티스토리 뷰

1931 회의실 배정

최대 배치 가능한 회의 개수를 묻는 문제!

import sys
input = lambda: sys.stdin.readline().rstrip()
time = []

N = int(input())
for i in range(N):
    time.append(list(map(int, input().split())))
time.sort(key=lambda x:(x[1], x[0]))

cnt, t, i = 1, 0, 1
while t+i < N:
    if time[t][1] <= time[t+i][0]:
        t += i
        cnt += 1
        i = 1
    else:
        i += 1
            
print(cnt)

11000 강의실 배정

최소 배치되는 강의실 개수를 묻는 문제!

import sys
input = lambda: sys.stdin.readline().rstrip()
import heapq

N = int(input())
s = []

for i in range(N):
    S, T = map(int, input().split())
    s.append((S, T))

s.sort()
q = [s[0][1]] # 큐에 가장 먼저 시작하는 회의실의 종료 시간을 넣음
    
for i in range(1, N):
    if s[i][0] < q[0]: # 다음 회의 시작 시간이 직전 회의 마무리 시간보다 빠르면?
        heapq.heappush(q, s[i][1])
    else:
        heapq.heappop(q)
        heapq.heappush(q, s[i][1])

print(len(q))
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함