๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ProgramSolve/Baekjoon

[BOJ] 1911๋ฒˆ - ํ™๊ธธ ๋ณด์ˆ˜ํ•˜๊ธฐ (Python)

by SooooooooS 2023. 9. 7.
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