[Gold V]
https://www.acmicpc.net/problem/1911
1911번: 흙길 보수하기
어젯밤 겨울 캠프 장소에서 월드 본원까지 이어지는, 흙으로 된 비밀길 위에 폭우가 내려서 N(1 ≤ N ≤ 10,000)개의 물웅덩이가 생겼다. 월드학원은 물웅덩이를 덮을 수 있는 길이가 L(1 ≤ L ≤ 1,000
www.acmicpc.net
풀이
간단한 그리디 문제.
입력된 물웅덩이를 좌표 순으로 정렬한 이후,
모든 물웅덩이를 순회하며, 널빤지를 설치해야 할 경우에 설치한다.
각 순회마다 널빤지의 시작, 끝 좌표를 받고, (line 12)
시작 좌표에 널빤지가 설치되어 있지 않다면, 우선 하나 설치한다. (line 13~15)
그리고, 마지막 좌표를 덮을 때 까지 널빤지를 추가로 설치한다. (line 16~18)
AC.
N, L = map(int, input().split())
pool = []
for _ in range(N):
pool.append(tuple(map(int, input().split())))
pool = sorted(pool)
# 맨 마지막 널빤지의 시작 좌표.
board = -(L+1)
res = 0
for s, e in pool:
if board+L-1 < s:
board = s
res += 1
while board+L < e:
board = board+L
res += 1
print(res)