자료구조와 알고리즘/개인적인 코딩테스트 관련 풀이

[이분탐색(결정알고리즘)][그리디 알고리즘] - 회의실 배정(그리디 알고리즘)

얄루몬 2022. 7. 11. 19:16

문제

n개의 회의시간이 주어지면 최대한 회의를 많이할 수 있도록 하여라

문제 풀이

n = int(input())
meeting = [tuple(map(int,input().split())) for _ in range(n)]

meeting.sort(key= lambda x: (x[1],x[0]))
cnt = 0
end_time = 0

for s, e in meeting:
    if s >= end_time:
        end_time = e
        cnt += 1
print(cnt)
  • 그리디의 경우 정렬된 데이터를 이용해 최선으로 좋은 답을 선택하는 문제이다.
  • 회의 시간의 경우 (시작 시간, 끝나는 시간)을 튜플 형태로 리스트에 넣어두고 끝나는 시간을 기준으로 정렬해 시작하는 시간과 비교해준다.
  • 시작 시간이 끝나는 시간보다 이른 경우엔 회의실 사용이 불가하다