[백준] 1379 - 강의실 2
2024. 5. 22. 16:26ㆍPS/백준
728x90
문제 링크
https://www.acmicpc.net/problem/1379
느낀점
강의실 문제(https://www.acmicpc.net/problem/1374)(https://gitdeep.tistory.com/134)와 비슷하지만, 같은 강의실에서 강의할 수 있는 강의를 생각하는 것에서 시간을 많이 소모한 것 같다. 그리고 예시로 나오는 정답이 푸는 정답과 달라서 로직이 맞나? 라고 생각을 많이 했던 듯!
# stack이나 정렬 문제라고해서 완전히 그 형태로 만들어야된다는 생각은 버리고 규칙, 제약 조건을 먼저 생각해보자
# [[3, 8], [12, 18], [20, 25]] 4
# [[7, 13], [15, 21]] 3
# [[2, 14]] 2
# [[6, 20]] 1
# [[6, 27]] 5
import sys
import heapq
N = int(sys.stdin.readline())
time_list = []
room = [0] * N
pq = []
num_lectures = 0
for _ in range(N):
num_l, time_s, time_e = map(int, sys.stdin.readline().split())
time_list.append([time_s, time_e, num_l-1])
time_list = sorted(time_list, key = lambda x: (x[0], x[1]))
for s, e, idx in time_list:
if len(pq) > 0:
if pq[0][0] > s:
num_lectures += 1
room[idx] = num_lectures
else:
room[idx] = room[pq[0][2]]
heapq.heappop(pq)
else:
num_lectures += 1
room[idx] = num_lectures
heapq.heappush(pq, ([e, s, idx]))
print(num_lectures)
for i in room:
print(i)
'PS > 백준' 카테고리의 다른 글
[백준] 1107 - 리모컨 (0) | 2024.05.24 |
---|---|
[백준] 1946 - 신입 사원 (0) | 2024.05.22 |
[백준] 25918 - 북극곰은 괄호를 찢어 (0) | 2024.05.15 |
[백준] 1374 - 강의실 (0) | 2024.05.14 |
[백준] 23349 - 졸업사진 (0) | 2024.05.12 |