[백준] 1931 회의실 배정

ganta·2021년 3월 26일
0

알고리즘 문제해결

목록 보기
16/24

✔️ 문제 링크

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

💡 핵심 아이디어

1️⃣ 끝나는 시간을 오름차순, 시작 시간을 오름차순으로 정렬

2️⃣ 배정 시간을 순회하며 배정하고 새로 배정시킬 회의실 시작시간이 이미 배정된 회의실 끝나는 시간보다 크면 회의실을 배정

❗️예외 처리

1️⃣ 시작 시간을 오름차순으로 배열하지 못하여 예외처리를 하지 못하였는데 만약 이 예외처리를 하지 않으면 1 2, 2 2 인 경우 답이 1로 나올 수 있기 때문에 주의 하여야 한다.

⭐️ 소스 코드

if __name__ == '__main__':
    N = int(input())
    room_arr = [tuple(map(int, input().split())) for _ in range(N)]

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

    search = room_arr[0]
    ans = 1

    for v in room_arr[1:]:
        if v[0] == v[1]:
            ans += 1
            continue

        if search[1] <= v[0]:
            ans += 1
            search = v
    print(ans)
profile
한걸음씩 꾸준히

0개의 댓글