문제출처: https://www.acmicpc.net/problem/19598
1. 문제 접근 방식
엄청 많이 헤맸다... 먼저 배열을 선언하고 start를 기준으로 정렬한다.
힙을 선언한 후에 배열을 순회하면서 heap[0]보다 start값이 크거나 같으면 heappop을 해주고(회의실 그대로 사용) 아니면 count값을 추가(회의실 한 개 더 선언)해준다.
2. 내가 푼 코드
import sys
import heapq
case = int(sys.stdin.readline())
arr = []
for _ in range(case):
arr.append(list(map(int, sys.stdin.readline().split())))
arr.sort(key=lambda x: x[0])
heap = [0]
count = 1
for start, end in arr:
if start >= heap[0]:
heapq.heappop(heap)
else:
count+=1
heapq.heappush(heap, end)
print(count)
3. 결과 및 느낀점
자주 출체될 수 있을거 같은 유형이라 확실하게 공부해야 할 것 같다.
for루프를 돌 때 초기값만 경우를 다르게 줘야한다면
[0]인 배열을 선언해도 괜찮을 것 같다.
'[Boj문제풀이]' 카테고리의 다른 글
[Boj/백준] 22252 Python (0) | 2021.09.17 |
---|---|
[Boj/백준] 13975 Python (0) | 2021.09.16 |
[Boj/백준] 19638 Python (0) | 2021.09.14 |
[Boj/백준] 15903 Python (0) | 2021.09.14 |
[Boj/백준] 1927 11279 11286 Python (0) | 2021.09.13 |