1931번 : 회의실 배정 - Python

FriOct·2023년 5월 7일
0

PS

목록 보기
90/108

문제

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

풀이

가장 많은 회의를 찾는 방법을 찾을때 고려해야 하는 것은

  1. 끝나는 시간이 빨라야 한다.
  2. 가장 최근의 끝나는 시간과 시작하는 시간이 가까워야 한다.

이 두가지를 적용해서 우선 시작시간으로 정렬을 한 다음 끝나는 시간으로 정렬을 한다.
가장 첫번째 회의를 배정한다.(가장 빨리끝나는 회의이기 때문이다.) 그 후, 첫번째 회의의 끝나는 시간과 시작시간이 가장 가까운 회의를 배정한다.이 순서대로 회의를 끝까지 돌아본다.

코드

from sys import stdin

input = stdin.readline

array = [list(map(int,input().split())) for _ in range(int(input()))]
count = 0#회의 횟수
fin = 0 #끝나는 시간

#빨리 끝나는 순으로 정렬
array.sort(key=lambda x : x[0])
array.sort(key=lambda x : x[1])

for key in array:
    #시작하는 시간이 끝나는 시간후라면 그 회의가 회의실을 사용한다. 끝나는 시간을 업데이트 한다.
    if key[0]>=fin:
        fin = key[1]
        count+=1
    
print(count)
profile
꿈 많은 개발자

0개의 댓글