회의실(그리디)

mangyun·2021년 11월 30일
0

BOJ

목록 보기
11/21

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

1. 코드

n = int(input())
meet = []

for i in range(n):
    s, e = map(int, input().split())
    meet.append((s, e))

# 일단 끝나는 시간 오름차순 후, 그 안에서 부분적으로 시작시간 오름차순
meet.sort(key=lambda x: (x[1], x[0]))

count = 1

end = meet[0][1]
for i in range(1, n):
  if end <= meet[i][0]:# 끝나는 시간이 더 작다면
    count += 1
    end = meet[i][1] # 해당 시작시간으로 시간 초기화

print(count)

2. 아이디어

sort(lambda)를 이용해 key으로 시간 분류한다.
시작과 끝 시간이 같다면, 끝은 같고 시작시간이 더 작은게 존재한다면 1회가 추가될 수 있는 것이다.

profile
기억보다는 기록을 하자.

0개의 댓글