백준 1931번 "회의실 배정"

문제

백준 1931번 회의실 배정


풀이

처음엔 시작 시간값을 정렬하고 2중 반복문을 이용하여 각 시작 시간에 대하여 최대 회의수를 구한 다음 그 중 최댓값을 구하는 방식으로 코드를 짰었는데, 이게 시간초과가 나왔다....

회의 시작시간의 정렬 후 종료시간을 한번 더 정렬하는 방식으로 배열을 정렬하니 정답 코드를 완성 할 수 있었다.


Python 코드

import sys
input = sys.stdin.readline

n = int(input())
arr = []
answer = []

for _ in range(n):
  arr.append(list(map(int, input().split())))

arr.sort(key=lambda x:(x[1],x[0]))

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

print(count)

좋은 웹페이지 즐겨찾기