-
[백준] 19598번: 최소 회의실 개수(Python, 그리디)Algorithm PS👩🏻💻/백준 2023. 7. 5. 16:20
1. 문제 링크
https://www.acmicpc.net/problem/19598
19598번: 최소 회의실 개수
2개 회의실로 3개 회의를 모두 진행할 수 있다. 예를 들어, 첫번째 회의실에서 첫번째 회의를 진행하고 두번째 회의실에서 두번째 회의와 세번째 회의를 진행하면 된다. 1개 회의실로 3개 회의
www.acmicpc.net
2. 풀이
1) 풀이 설명
- 분류: 그리디, 스위핑
스위핑은 정렬 후 다음 데이터만 생각하기 때문에 그리디랑 같이 엮인다. => 이럴 경우 heapq 사용하기
- heapq(room 배열)에 끝나는 시간을 담아서, 다음 시작 시간이 heapq에 담긴 0번째(가장 빨리 끝나는 시간)보다 클 경우, 배열에 끝나는 시간을 추가한다.
- 그렇지 않으면 빼고 추가
2) 풀이 코드
import sys import heapq input = sys.stdin.readline n = int(input()) array = [] for _ in range(n): array.append(list(map(int, input().split()))) room = [] array.sort() heapq.heappush(room, array[0][1]) for i in range(1, n): if room[0] <= array[i][0]: heapq.heappop(room) heapq.heappush(room, array[i][1]) else: heapq.heappush(room, array[i][1]) print(len(room))
'Algorithm PS👩🏻💻 > 백준' 카테고리의 다른 글
[백준] 1764번: 듣보잡(Python) (0) 2023.07.06 [백준] 8980번: 택배(Python) (0) 2023.07.06 [백준] 5430번: AC (Python) (0) 2023.06.28 [백준] 3079번: 입국심사(이분탐색, Python) (0) 2023.05.30 [백준] 20444번: 색종이와 가위(이분탐색, Python) (0) 2023.05.29