https://programmers.co.kr/learn/courses/30/lessons/12979
import math
def solution(n, stations, w):
answer = 0
unreached = get_unreached(n, stations, w)
for s, e in unreached:
answer += math.ceil((e - s + 1) / (2 * w + 1))
return answer
def get_unreached(n, stations, w):
unreached = []
# 시작
e = stations[0] - w - 1
if 1 <= e:
unreached.append((1, e))
# 중간
for i in range(len(stations)-1):
s = stations[i] + w + 1
e = stations[i+1] - w - 1
if s <= e:
unreached.append((s, e))
# 끝
s = stations[-1] + w + 1
if s <= n:
unreached.append((s, n))
return unreached