예시1 : [4,11]에 기지국이 있고 범위 w가 1일 때.
한 군데에 기지국 설치시 최대 3곳을 커버할 수 있다.
-> 커버 가능한 범위는 1 + w * 2
5와 10은 범위가 닿는 곳이니 pass.
6,7,8,9 4군데가 공백이므로 2개는 설치해야 한다.
-> 두 점 사이의 순수 공백 범위 blank
를 찾아서 범위만큼 나누면 된다.
주의 1: 맨 마지막 범위까지 검사해야 하기 때문에 n + w + 1을 범위에 추가한다.
주의 2: 맨 처음 범위도 검사가 필요하니 -w을 범위에 추가한다.
function solution(n, stations, w) {
let answer = 0;
const range = 1 + w * 2;
const calc = (p1, p2) => {
const blank = p2 - p1 - range;
if (blank > 0) answer += Math.ceil(blank / range);
return p2;
};
stations.push(n + w + 1);
stations.reduce(calc, -w);
return answer;
}