티스토리 뷰
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))
'Study > Baekjoon' 카테고리의 다른 글
[Python] 백준 30804번 과일 탕후루 | 투포인터, 브루트포스 알고리즘 (5) | 2024.06.13 |
---|---|
[Python] 백준 5639번 이진 검색 트리, 2263번 트리의 순회 | 트리 순회 변환 - 전위 순회(preorder), 중위 순회(inorder), 후위 순회(postorder) (0) | 2024.05.28 |
[Python] 백준 1629번 곱셈, 13171 A | 분할 정복을 이용한 거듭제곱 (0) | 2024.05.24 |
[Python] 백준 7785번 회사에 있는 사람 | set() (1) | 2024.02.12 |
[Python] 백준 1009번 분산처리 | 런타임에러(KeyError) (0) | 2023.08.05 |