728x90
๐ ๏ธ ๋ฌธ์ ๐ ๏ธ
๐๏ธ ์ค๋ช ๐๏ธ
์ด ๋ฌธ์ ๋ [๋ฌผ์ ๋ฉ์ด๋ค์ ๋ชจ๋ ๋ฎ์ผ๋ ค๊ณ ํ๋ค.] ๋ผ๋ ์กฐ๊ฑด์ด ์์ผ๋ฏ๋ก ๋ฌผ์ ๋ฉ์ด๊ฐ ๋ณด์ด๋ฉด ์ผ๋จ ๋ฎ์ผ๋ฉด ๋๋ค.
๊ทธ๋ฌ๋ ๋๋นค์ง์ ๊ธธ์ด๋ ์ ํด์ ธ ์์ผ๋ฏ๋ก ๋ฎ๋ค๋ณด๋ฉด ์ ๋ ฅ๋ฐ์ ๋ฌผ์ ๋ฉ์ด์ ์์น๊ฐ ์ด๋ฏธ ๋ฎ์ฌ์ ธ ์์ ์ ์๋ค.
์ด์ฐจํผ ๋ชจ๋ ์ ๋ฉ์ด๋ ๋ฎ์ด์ผํ๋ ์ ๋ฉ์ด์ [๋ ์์น - ์์ ์์น]๋ฅผ ํตํด ์ ๋ฉ์ด์ ๊ธธ์ด๋ฅผ ๊ตฌํ์ฌ ํ์ํ ๋๋นค์ง์ ๊ฐ์๋ฅผ ๊ตฌํ๋ค.
๋จ, ์์์ ์ค๋ช ํ๋ฏ์ด ์ด๋ฏธ ๋ฎ์ฌ์ ธ ์๋ ์์น๊ฐ ์กด์ฌํ ์ ์์ผ๋ฏ๋ก ์ด์ ๋ํ ์ฒ๋ฆฌ๋ก current๋ผ๋ ๋ณ์๋ฅผ ๋์ด ์์ ์์น๋ฅผ ๋ฎ์ฌ์ ธ ์์ง ์์ ์์น๋ก ๋ณ๊ฒฝํ ์ ์๋๋ก ํ๋ค.
๐ ํ์ด ๐
import sys
n, l = map(int, sys.stdin.readline().split())
water = [list(map(int, sys.stdin.readline().split())) for _ in range(n)]
water.sort()
count = 0
current = -1 # ๋๋นค์ง๊ฐ ๋ฎ์ฌ์ง์ง ์๋ ์์์
for x, y in water :
if current < x :
current = x
length = y - current # ๋ฎ์ด์ผํ ๋ฌผ ์
๋ฉ์ด์ ๊ธธ์ด
need = 0 # ํ์ฌ ํ์ํ ๋๋นค์ง์ ๊ฐ์
if length % l == 0 :
need = length // l
else :
need = length // l + 1
count += need
current += need * l
print(count)
728x90
'ProgramSolve > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 2437๋ฒ - ์ ์ธ (Python) (0) | 2023.10.27 |
---|---|
[BOJ] 15657๋ฒ - N๊ณผM(8) (Python) (1) | 2023.10.05 |
[BOJ] 13549๋ฒ - ์จ๋ฐ๊ผญ์ง3 (Python) (0) | 2023.09.05 |
[BOJ] 1753๋ฒ - ์ต๋จ๊ฒฝ๋ก(Python) + Dijkstra Algorithm (0) | 2023.09.04 |
[BOJ] 6064๋ฒ - ์นด์ ๋ฌ๋ ฅ(JAVA) (0) | 2023.03.27 |