알고리즘<회의실>

컴공 복학생Young이·2021년 5월 25일

문제
한 개의 회의실이 있는데 이를 사용하고자 하는 n개의 회의들에 대하여 회의실 사용표를 만들
려고 한다. 각 회의에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하
면서 회의실을 사용할 수 있는 최대수의 회의를 찾아라. 단, 회의는 한번 시작하면 중간에 중
단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다.

입력예제 1
5
1 4
2 3
3 5
4 6
5 7

풀이
시작시간은 중요하지 않다 끝나는 시간에따라 어차피 바뀌기 때문!
따라서 끝나는 시간 기준으로 정렬해준다
meeting.sort(key=lambda x : (x[1],x[0]))

import sys

sys.stdin = open("회의실.txt","r")
n = int(input())
meeting = []
for i in range(n):
    s, e = map(int,input().split())
    meeting.append((s,e))

meeting.sort(key=lambda x : (x[1],x[0]))
endTime = 0
cnt = 0
for s,e in meeting:
    if s >= endTime:
        endTime = e
        cnt +=1

print(cnt)

profile
반드시 해낸다

0개의 댓글