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

 

1931번: 회의실 배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net


문제 해결을 위한 과정

이 문제는 정렬을 이용하면 해결할 수 있었습니다. 끝나는 시간을 기준으로 오름차순으로 정렬을 하면 됩니다. 다만 이 경우 시작 지점 역시 오름차순을 해야 한다는 점이 있습니다. 또한 시작과 동시에 종료인 경우도 한가지 경우로 생각을 해야 합니다.


소스코드

 

n = int(input())
arr = []
for _ in range(n):
  a, b = map(int, input().split())
  arr.append((a, b))
  
arr.sort(key = lambda x: (x[1], x[0]))

startTime = arr[0][0]
endTime = arr[0][1]
ans = 1

for i in range(1, n):
  if endTime <= arr[i][0]:
    endTime = arr[i][1]
    ans += 1

print(ans)

+ Recent posts