알고리즘 문제 풀이: 파이썬/BOJ

[BOJ_11000] 강의실 배정

hueco 2022. 11. 3.

 

📌 문제 링크: https://www.acmicpc.net/problem/11000

 

11000번: 강의실 배정

첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109)

www.acmicpc.net

 

내 풀이(Success) :

 

🧐 Review:

 알고리즘 분류를 확인하지 않았다면 내가 '우선순위 큐'를 이용해서 로직을 생각해봤을까? 아닐 것 같다. 자료구조를 다시 한번 복습해야겠다.

 

문제를 풀고 나서 내가 작성한 코드는 시작 시간과 종료 시간 모두 고려해서 정렬했지만, 구글링을 통해 찾은 코드는 보통 시작 시간을 기준으로만 정렬을 했다. 그래서인지 내 코드에서 readline을 이용해서 입력을 빠르게 받지 않았을 때, 로직에는 이상이 없지만 80% 넘어서 '시간 초과'가 발생하는 것을 확인했다. 어떻게 하면 시간을 더 줄일 수 있을지 생각해보다 입력을 빠르게 받는다면 어떨까라는 생각이 들었고, readline으로 코드를 변경하니 매우 빠르게 통과하는 것을 확인할 수 있었다.

 

🚩 Idea:

 - 입력 값의 크기 n의 최댓값이 200,000으로 매우 크다. for 반복문이 중첩되면 시간 초과가 발생한 것 같다.

 - 중첩된 반복문 없이 로직을 짜봐야겠는데 자료구조는 어떤 것을 사용해야 할까? 감이 오질 않아서 '알고리즘 분류'에서 힌트를 얻었다.

 - 우선순위 큐(= 힙)을 사용하는 로직을 생각해보자.

 
 
 

'알고리즘 문제 풀이: 파이썬 > BOJ' 카테고리의 다른 글

[BOJ_10799] 쇠막대기  (0) 2022.11.03
[BOJ_1935] 후위 표기식 2  (0) 2022.11.03
[BOJ_17609] 회문  (0) 2022.11.03
[BOJ_12904] A와 B  (0) 2022.11.02
[BOJ_1417] 국회의원 선거  (0) 2022.10.24

댓글