Leta Learns

[Python] 백준 1449번 - 수리공 항승 본문

Coding/백준

[Python] 백준 1449번 - 수리공 항승

leta 2022. 2. 25. 11:11

문제 https://www.acmicpc.net/problem/1449

 

1449번: 수리공 항승

첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나

www.acmicpc.net

 

문제가 이해가 안 돼서 한참 멍 때렸다.

 

테이프 길이가 L이고 좌우로 0.5씩 간격을 주어야 하므로 L-1 만큼을 막을 수 있다.

물이 새는 곳을 리스트로 받아 정렬한 후 물이 새기 시작하는 곳을 갱신한다.

 

현재 새는 곳보다 시작점이 큰 경우에는 이미 테이프로 막고 있는 것이기 때문에 고려할 필요가 없다.

따라서 시작점이 현재 새는 곳보다 작은 경우에만 시작점을 갱신하고 횟수 + 1을 해준다.

 

import sys
input = sys.stdin.readline

n, l = map(int, input().split())
leak = list(map(int, input().split()))
leak.sort()

s = 0 #start
cnt = 0

for i in leak:
    if s < i:
        s = i + l - 1
        cnt += 1

print(cnt)

'Coding > 백준' 카테고리의 다른 글

[Python] 백준 15651번 - N과 M (3)  (0) 2022.02.25
[Python] 백준 15650번 - N과 M (2)  (0) 2022.02.25
[Python] 백준 15649번 - N과 M (1)  (0) 2022.02.24
[Python] 백준 1026번 - 보물  (0) 2022.02.24
[Python] 백준 11399번 - ATM  (0) 2022.02.23
Comments