백준 1931-회의실 배정
문제
코드
import sys
input = sys.stdin.readline
N = int(input())
li = []
for _ in range(N):
fir, sec = map(int, input().split())
li.append([fir, sec])
sort_list = sorted(li)
tmp = [sort_list[0][0], sort_list[0][1]]
cnt = 1
for i in range(1, N):
if sort_list[i][1] < tmp[1]:
tmp = [sort_list[i][0], sort_list[i][1]]
else:
if sort_list[i][0] >= tmp[1]:
cnt += 1
tmp = [sort_list[i][0], sort_list[i][1]]
print(cnt)
해설
- 먼저 회의 시작 순서대로 정렬해준다.
- 회의가 끝나는 시간이 tmp에 있는 끝나는 시간보다 작으면 tmp를 교체해준다.
- 만약 회의 시작 시간이 tmp에 있는 끝나는 시간보다 크거나 같으면 cnt+1을 해주고 tmp를 교체한다.
- 회의 시작시간과 끝나는 시간이 같을 수 있으므로 주의하자.