백준 1931번 python 풀이 - 회의실 배정
문제 링크
해결책
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
import sys
N = int(sys.stdin.readline().rstrip())
con_time = []
for _ in range(N):
temp_start, temp_end = map(int, sys.stdin.readline().split())
con_time.append((temp_start, temp_end))
con_time.sort(key=lambda x: (x[1], x[0]))
cnt = 0
used_time = 0
for j in range(0, len(con_time)):
start, end = con_time[j]
if start >= used_time:
cnt += 1
used_time = end
print(cnt)
주석으로 달 설명
그리디. 결국 정렬이 중요하다는 문제.
회의실을 가장 많이 배정하려면 어떻게 해야 할까! 라는 고민을 지속적으로 하다보면, 결국 회의의 종료시간을 기준으로 줄을 세우면 가능하다는 결론에 도달한다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.