honey_pot

[Python] 1911번: 흙길 보수하기 본문

문제 풀이

[Python] 1911번: 흙길 보수하기

_tera_ 2022. 10. 30. 14:31

https://www.acmicpc.net/problem/1911


그리디 문제

각 웅덩이마다 널빤지를 놓는 시작점이 되는 now를 갱신한다

첫 웅덩이 pool[0] 의 시작점 [0][0]로 now를 초기화하고

end-now로 거리를 계산하여 널빤지 길이인 L로 나누어 나머지가 남는 경우(=추가로 1개 더 필요)와 안 남는 경우를 나누어 생각한다.

now에 총 널빤지 길이를 더하는 부분을 주의

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
N,L = map(int, input().split())
pool = [list(map(int,input().split())) for _ in range(N)]
pool.sort()
now = pool[0][0]
total = 0
for start,end in pool:
    if now > end:
        continue
    elif now < start:
        now = start
    dist = end - now
    remain = 1
    if dist % L == 0:
        remain = 0
    cnt = dist//+ remain
    now += cnt * L
    total += cnt
print(total)
cs

'문제 풀이' 카테고리의 다른 글

[Python] 1463번 : 1로 만들기  (1) 2022.11.17
[python] 2885번:초콜릿 식사  (0) 2022.10.30
[python] 입국심사  (0) 2022.09.30
[python] 디스크 컨트롤러  (0) 2022.09.29
[Python] 가장 먼 노드  (0) 2022.09.28
Comments