문제

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


풀이


풀이 1

  • 58420 KB, 264 ms
import sys
input = sys.stdin.readline

N = int(input().rstrip())
times = [list(map(int, input().rstrip().split())) for _ in range(N)]
times.sort(key=lambda  x : (x[1], x[0]))

rooms = [times[0]]
prev = times[0][1]

for i in range(1, N) :
    if times[i][0] >= prev :
        rooms.append(times[i])
        prev = times[i][1]

print(len(rooms))


풀이1 설명

회의가 먼저 끝나는 회의부터 정렬해야 가능한 더 많은 회의를 진행할 수 있다.

따라서 회의 종료 시간을 기준으로 오름차순 정렬을 하고 진행 가능한 회의를 선택

종료 시간을 기준으로 정렬해야한다는 아이디어가 잘 떠오르지 않아서 시간이 걸렸던 문제..


Leave a comment