-
[BOJ 1931, Python 3] 회의실 배정알고리즘/BOJ 2021. 8. 5. 10:20반응형
https://www.acmicpc.net/problem/1931
풀이
끝나는 시간을 1순위, 시작하는 시간을 2순위로 정렬하빈다.
이러면 먼저 끝나는 회의를 먼저 시작하고, 끝나는 시간이 같으면 가장 빨리 시작하는 회의부터 처리하게 됩니다.
이 이유는 회의가 끝나자마자 동시에 시작될 수 있기 때문이며 만약 (1, 2), (2, 2)이 입력된다면 (2, 2)부터 처리하는 경우도 생기기 때문에 무조건 2순위로 해줘야합니다. 2순위 정렬을 선택하지 않으면 인덱스 번호대로 정렬해서 순서가 뒤죽박죽이 될 수 있습니다.
정렬 2순위를 왜 해야하는지 생각하는데 오래 걸렸네요.
코드
123456789n = int(input())arr = sorted([[*map(int,input().split())] for _ in range(n)], key=lambda x: [x[1], x[0]])last = 0ans = 0for i in range(n):if last <= arr[i][0]:ans += 1last = arr[i][1]print(ans)cs 반응형'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ 11047, Python 3] 동전 0 (0) 2021.08.05 [BOJ 2138] 전구와 스위치 (0) 2021.08.05 [BOJ 1541, Python 3] 잃어버린 괄호 (0) 2021.08.04 [BOJ 1080, Python 3] 행렬 (0) 2021.08.04 [BOJ 19941, Python 3] 햄버거 분배 (0) 2021.08.04