728x90
📌 링크 : https://www.acmicpc.net/problem/11000
❗️ Issue
1️⃣ 문제 이해를 잘 못했다 최고로 긴 회의 수를 만드는 걸로 착각했는데
그게 아니라 강의실을 몇 개 구해야 하는가의 문제였다.
문제 파악을 위해 예시를 잘 읽고 올바른 로직으로 답을 도출했는지 확인하자
💡 Solution
1️⃣ 불연속적: 현재 회의 시작 시간 < 가장 먼저 끝나는 회의의 시간 => 강의실 추가
2️⃣ 연속적: 현재 회의 시작 시간 > 가장 먼저 끝나는 회의의 시간 => 강의실 개수 유지 및 끝나는 시간 변경
이를 위해서 sort() 및 우선순위 큐가 필요하다
전체 코드
import heapq
n = int(input())
q = []
for i in range(n):
s, e = map(int, input().split())
q.append([s, e])
q.sort()
room = []
heapq.heappush(room, q[0][1])
for i in range(1, n):
if q[i][0] < room[0]:
heapq.heappush(room, q[i][1])
else:
heapq.heappop(room)
heapq.heappush(room, q[i][1])
print(len(room))
728x90
'코딩테스트' 카테고리의 다른 글
[그리디] 백준 13164 Gold5 행복유치원 (0) | 2024.01.09 |
---|---|
[이진탐색] 프로그래머스 Lv4 가사 검색 (1) | 2023.12.07 |
[구현] 프로그래머스 Lv3 외벽 점검 (0) | 2023.11.29 |
[Python] 코딩테스트를 위한 파이썬 문법 - 정리 (2) | 2023.11.27 |
프로그래머스, 백준 깃허브 연동하기 및 빨간 체크박스 문제 (0) | 2023.03.11 |