기지국 설치
예전에 풀었던 것과 비교
예전
def solution(n, stations, w):
answer = 0
s = 0
l = []
for i in stations:
if i-1-w > s:
l.append(i-1-w-s)
s = i + w
if s < n:
l.append(n - s)
for i in l:
answer += (i+w*2)//(w*2+1)
return answer
새로푼것
기지국 위치 - 거리
기지국 위치 + 거리
이런식으로 처음과 끝을 잡고 그 사이는 나누기로 설치할 기지국 계산
def solution(n, stations, w):
start = 1
answer = 0
for s in stations:
end = s - w
if end - start > 0:
q,r = divmod(end - start,2*w+1)
answer += q
if r != 0:
answer += 1
start = s + w + 1
if start <= n:
if start == n:
answer += 1
else:
q,r = divmod(n - start,2*w+1)
answer += q
if r != 0:
answer += 1
return answer