본문 바로가기
알고리즘 문제

백준 1931

by hyunjing0 2021. 3. 24.
"""

최대한 많이 사용하려면?
1. 빨리 끝나는 회의부터 찾아서
2. 차례차례 회의 스케줄에 넣음

"""

N = int(input())
meeting = []
for _ in range(N):
    meeting.append(list(map(int, input().split())))

# 끝나는 시간 오름차순으로 정렬
meeting.sort(key = lambda x: (x[1], x[0]))
print(meeting)

count = 1
tmp = meeting[0][1] # 첫 회의의 끝나는 시간
for i in meeting[1:]:
    if tmp <= i[0]:
        count += 1
        tmp = i[1]

print(count)

백준 17262번과 비슷한 문제다.

이런 문제는 시작과 끝에 초점을 맞추면 쉬운 것 같다.

이번 문제도 회의의 끝시간과 다음회의의 시작시간을 비교하면 된다.

 

그런데 최대한 많은 회의를 해야하므로

빨리끝나는 회의부터 차례차례 배정하면 된다.

 

key = lambda x: (x[1], x[0]) 를 통해 1번째 요소를  오름차순으로 정렬할 수 있다. 

'알고리즘 문제' 카테고리의 다른 글

백준 1946 파이썬  (0) 2021.10.05
백준 11047 파이썬  (0) 2021.03.25
백준 16208  (0) 2021.03.22
백준 16435  (0) 2021.03.22
백준 11399  (0) 2021.03.15