-
[๋ฐฑ์ค] 13334 ์ฒ ๋ก with PythonPS 2021. 10. 25. 23:56728x90๋ฐ์ํ
๐ BOJ 13334 ์ฒ ๋ก
๐ก ์กฐ๊ฑด
์ฌ๋ ์๋ฅผ ๋ํ๋ด๋ ์์ ์ ์
n
(1 โค n โค 100,000)
n
๊ฐ์ ๊ฐ ์ค์ ์ ์ ์(hi, oi)
๊ฐ ์ฃผ์ด์ง๋ค.โ100,000,000 โค hi โค 100,000,000
โ100,000,000 โค oi โค 100,000,000
oi != hi
์ฒ ๋ก์ ๊ธธ์ด๋ฅผ ๋ํ๋ด๋ ์ ์d
(1 โค d โค 200,000,000)
์ง๊ณผ ์ฌ๋ฌด์ค ๋ชจ๋๊ฐ ์ฒ ๋ก ๊ธธ์ด ์์ ๋ค์ด๊ฐ ์ ์๋ ์ต๋์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ .
์ฐ์ ์์ ํ, ์ฆ ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ฉํ๋ ๋ฌธ์ .
๐ฅ ์์ค ์ฝ๋
from sys import stdin import heapq n = int(stdin.readline()) roads, data = [], [] for _ in range(n): data.append(sorted(list(map(int, stdin.readline().split())))) train_road_length = int(stdin.readline()) for road in data: s, e = road if (e - s) <= train_road_length: roads.append(road) roads.sort(key=lambda x: x[1]) answer = 0 q = [] for road in roads: if not q: heapq.heappush(q, road) else: while q[0][0] < road[1] - train_road_length: heapq.heappop(q) if not q: break heapq.heappush(q, road) answer = max(answer, len(q)) print(answer)
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
8 5 40 35 25 10 20 10 25 30 50 50 60 30 25 80 100 30
์คํ๊ฒฐ๊ณผ
4
โจ๏ธ ๋ฌธ์ ํ์ด
- ๊ฐ์ฅ ๋จผ์ ์ง๊ณผ ์ฌ๋ฌด์ค์ ์์น๋ฅผ ์
๋ ฅ๋ฐ๋๋ฐ, ๊ทธ ์์น๊ฐ ์ ๋ ฌ์ด ๋ ๋ฐ์ดํฐ๊ฐ ์๋๊ธฐ์ ๊ณ์ฐ์ ์ฉ์ดํ๋๋ก ํ๊ธฐ ์ํด
๋ฐ์ดํฐ๋ฅผ ์ ์ฒ๋ฆฌ๋ฅผ ํด์ค ํ,data
๋ฆฌ์คํธ์ ๋ฃ๋๋ค.
- ์ฒ ๋ก์ ๊ธธ์ด๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค.
data
๋ฅผ ์ํํ๋ฉด์, ์ง๊ณผ ์ฌ๋ฌด์ค์ ๊ฑฐ๋ฆฌ๊ฐ ์ฒ ๋ก์ ๊ธธ์ด๋ณด๋ค ์งง์ ๊ฒฝ์ฐ์๋งroads
๋ฆฌ์คํธ์ ๋ฃ์ด์ค๋ค.
๋ชจ๋ ๊ณณ์์์ ์ ๋ถ d(์ฒ ๋ก์ ๊ธธ์ด) ์์ ์ง๊ณผ ์ฌ๋ฌด์ค์ด ๋ชจ๋ ์์ ๋ค์ด๊ฐ์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
- 3๋ฒ์ ์ํ์์ผ ์ป์
roads
๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌ์ํจ๋ค.
- ์ ๋ ฌ์ํจ
roads
๋ฐฐ์ด์ ๋ค์ ์ํํ๋ฉด์,heapq
๋ฅผ ๋ง๋ค์ด ํ๊ฐ ๋น์ด์์ ๊ฒฝ์ฐ ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋๋ค.
ํ
์ ์์์ ์์น๊ฐ(ํ์ฌ ์ง์ ๋ road์ ๋๋๋ ์ง์ - ์ฒ ๋ก ๊ธธ์ด)
๋ณด๋ค ์งง์ผ๋ฉดํ
์์ ๋ฐ์ดํฐ๋ฅผ ๋บ๋ค.ํ
์ ๋ค์ด๊ฐ ์๋ ์ง๊ณผ ์ฌ๋ฌด์ค ์ขํ์์์์ ๊ฐ์
๊ฐ ์ ๋ต์ด๊ธฐ ๋๋ฌธ์
์ฒ ๋ก์ ๊ธธ์ด ๋ฒ์ ๋ฐ์ผ๋ก ์ขํ๊ฐ ๋๊ฐ๋ ์ ๋ค์ ๊ณผํจํ๊ฒ ์๋ผ์ค๋ค.
๐พ ๋๋์
์ฐ์ ์์ ํ
๋ฅผ ์ฌ์ฉํด์ ํธ๋ ๋ฌธ์ ์์ง๋ง, ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ ํธ๋๋ฐ์ ์ ๋ฅผ ๋จน์๋ค.๋์ ํฉ
์ ์ฌ์ฉํด์ ํ์ด๋ณด๋ ค๊ณ ํ๋๋ฐ ์ฌ๋ฐ๋ฅธ ํ์ด๊ฐ ์๋์๋์ง, ์ฝ๋ฉ์ ํ๋ค๊ฐ ๋ช ๋ฒ ๋ค์ง์๋ค.- ์ด ๋ฌธ์ ๋ํ ๋ฐ๋์ ํ๋ฒ ๋ ํ์ด๋ณด๊ณ ๊ฐ๋ ์ ์ตํ์ผํ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์คํ์ฑํ ๋ฐฉ with Python (0) 2021.11.21 [๋ฐฑ์ค] 14725 ๊ฐ๋ฏธ๊ตด with Python (0) 2021.11.21 [๋ฐฑ์ค] 12100 2048(easy) with Python (0) 2021.10.25 [๋ฐฑ์ค] 1043 ๊ฑฐ์ง๋ง with Python (0) 2021.10.20 [๋ฐฑ์ค] 3184 ์ with Python (0) 2021.10.19