https://www.acmicpc.net/problem/11000
11000๋ฒ: ๊ฐ์์ค ๋ฐฐ์
์ฒซ ๋ฒ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 200,000) ์ดํ N๊ฐ์ ์ค์ Si, Ti๊ฐ ์ฃผ์ด์ง๋ค. (0 ≤ Si < Ti ≤ 109)
www.acmicpc.net
๋ฌธ์
์๊ฐ์ ์ฒญ์ ๋ง์คํฐ ๊น์ข ํ ์ ์๋์๊ฒ ์๋ก์ด ๊ณผ์ ๊ฐ ์ฃผ์ด์ก๋ค.
๊น์ข ํ ์ ์๋ํํ ๋ Si์ ์์ํด์ Ti์ ๋๋๋ N๊ฐ์ ์์ ์ด ์ฃผ์ด์ง๋๋ฐ, ์ต์์ ๊ฐ์์ค์ ์ฌ์ฉํด์ ๋ชจ๋ ์์ ์ ๊ฐ๋ฅํ๊ฒ ํด์ผ ํ๋ค.
์ฐธ๊ณ ๋ก, ์์ ์ด ๋๋ ์งํ์ ๋ค์ ์์ ์ ์์ํ ์ ์๋ค. (์ฆ, Ti ≤ Sj ์ผ ๊ฒฝ์ฐ i ์์ ๊ณผ j ์์ ์ ๊ฐ์ด ๋ค์ ์ ์๋ค.)
์๊ฐ์ ์ฒญ ๋์ถฉํ ๊ฒ ์ฐ๋ฆฌ๋ฉด, ์ ์๋์ ๋์๋๋ฆฌ์!
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 200,000)
์ดํ N๊ฐ์ ์ค์ Si, Ti๊ฐ ์ฃผ์ด์ง๋ค. (0 ≤ Si < Ti ≤ 109)
์ถ๋ ฅ
๊ฐ์์ค์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ผ.

๋ฌธ์ ํ์ด
- ์ ๋ ฌ๊ณผ ์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํด์ ํผ ๋ฌธ์ ๋ค.
- ๋จผ์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๊ฐ ์์ ์ ์์ ์๊ฐ๊ณผ ์ข ๋ฃ ์๊ฐ ๋ฐฐ์ด์ timetable์ ์ ์ฅํ๊ณ ์ ๋ ฌํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ฒซ ๋ฒ์งธ ์์ ์ ์ข ๋ฃ ์๊ฐ์ heap์ ์ถ๊ฐํ๋ค.
- ๊ทธ ๋ค์ ์์ ๋ถํฐ heap์ ์ ์ผ ์ฒซ ๋ฒ์งธ ์ข ๋ฃ ์๊ฐ ์ฆ, ๊ฐ์ฅ ์์ ์ข ๋ฃ ์๊ฐ๋ณด๋ค ํ์ฌ ์์ ์๊ฐ์ด ๋ ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์์ ํ ๋ฐฉ์ ์ถ๊ฐ๋ก ์ถ๊ฐํด์ค ํ์์์ด ํ์ฌ ์์นํ๋ ๋ฐฉ์์ ์ถ๊ฐ๋ก ์์ ์ ์งํํ ์ ์๋ค๋ ๋ป์ด๊ธฐ ๋๋ฌธ์, ๋ฐฉ์ ๊ฐ์๋ฅผ ์ ์งํ ๊ฒธ ํ์ฌ ๊ฐ์ฅ ์์ ์ข ๋ฃ ์๊ฐ์ ์ ๋ฐ์ดํธํ ๊ฒธ heappop์ ์ด์ฉํด์ ๊ฐ์ฅ ์์ ์ข ๋ฃ ์๊ฐ์ popํด์ฃผ๊ณ , ์๋ก์ด ์ข ๋ฃ ์๊ฐ์ heap์ ์ถ๊ฐํด์ค๋ค.
- ํ์ฌ ์์ ์๊ฐ์ด ๊ฐ์ฅ ์์ ์ข ๋ฃ ์๊ฐ๋ณด๋ค ์์์ ๊ธฐ์กด์ ๋ฐฉ์ ์๋ก ์์ ์ ์ถ๊ฐํด์ค ์ ์๋ ๊ฒฝ์ฐ ์๋ก์ด ๋ฐฉ์ ์ถ๊ฐํด์ผ ํ๋ฏ๋ก heappush๋ฅผ ์ด์ฉํด์ ํ์ฌ ์ข ๋ฃ ์๊ฐ์ ์ถ๊ฐํด์ค๋ค.
- ๋ชจ๋ ์์ ์๊ฐ์ ์ฒ๋ฆฌํด์ค ๋ค์ heap์ ๋จ์ ์์์ ๊ฐ์๊ฐ ๊ณง ํ์ํ ๋ฐฉ์ ๊ฐ์๊ฐ ๋๋ฏ๋ก, heap์ ๊ธธ์ด๋ฅผ ์ถ๋ ฅํด์ค๋ค.
import sys
from heapq import heappush, heappop
n=int(sys.stdin.readline())
timetable=[list(map(int, sys.stdin.readline().split(' '))) for _ in range(n)]
timetable.sort()
room=[]
# ์ฒซ๋ฒ์งธ ์์
์ ์ข
๋ฃ ์๊ฐ ์ถ๊ฐ
heappush(room, timetable[0][1])
for i in range(1,n):
# ํ์์ ์ ์ผ ์์ ์ข
๋ฃ ์๊ฐ๋ณด๋ค ํ์ฌ ์์ ์๊ฐ์ด ๋ ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด ๊ฐ๋ฅ
if room[0]<=timetable[i][0]:
# ํ์ฌ ๊ฐ์ฅ ์์ ์ข
๋ฃ ์๊ฐ ์
๋ฐ์ดํธ ๋ฐ ๋ฐฉ์ ๊ฐ์ ์ ์ง
heappop(room)
heappush(room, timetable[i][1])
else:
# ๋ฐฉ ์๋ก ์ถ๊ฐ
heappush(room, timetable[i][1])
print(len(room))
'์๊ณ ๋ฆฌ์ฆ > ์ ํ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 17298 ๐ฅ] ์คํฐ์ (0) | 2023.10.07 |
---|---|
[๋ฐฑ์ค 6198 ๐ฅ] ์ฅ์ ์ ์ ๊พธ๋ฏธ๊ธฐ (1) | 2023.10.07 |
[๋ฐฑ์ค 1406 ๐ฅ] ์๋ํฐ (0) | 2023.09.28 |
[๋ฐฑ์ค 9549 ๐ฅ] ์ํธํ๋ ๋น๋ฐ๋ฒํธ (0) | 2023.08.24 |
[๋ฐฑ์ค 22866 ๐ฅ] ํ ๋ณด๊ธฐ (0) | 2023.08.15 |