[백준 1931번 - Python 파이썬] 회의실 배정

wonyoung Song·2021년 11월 20일
0

알고리즘

목록 보기
5/7

백준 1931번 - 회의실 배정

Solution

조건 : ' 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자'

sort와 lambda식을 이용하여 회의가 끝나는 시간을 기준으로 오름차순으로 정렬 후
회의 시작시간을 기준으로 오름차순으로 정렬하였다.

  • 처음에는 sort를 하지 않고 제출하여 틀리고, 다음에는 sort 조건을 잘못 줘서 틀려버렸다.
    이 문제는 sort 이용이 중요하다 생각한다.
import sys
input = sys.stdin.readline

그리고 위의 코드가 없다면 시간이 4000ms 이상 나오므로 주의하자.

Code

import sys
input = sys.stdin.readline

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

last = -1

for i in arr:
  if i[0] >= last:
    cnt += 1
    last = i[1]

print(cnt)

Feedback
sort 응용에 애를 먹은 문제이다.
조건을 보고 정렬을 해야하는지 판단하는 능력이 더 필요할듯 하다.

profile
네. 송원영입니다.

0개의 댓글