투포인터?, 그리디라고 해야하나
이분탐색으로도 가능할 듯 싶다.
정확히는 기지국 전파 범위에 포함되지 않는 아파트 범위를 어떻게 찾는 가 이다.
1 ~ 첫 기지국
/ 기지국 ~ 기지국
/ 마지막 기지국 ~ n
#include <iostream>
#include <vector>
using namespace std;
int sp;
int solve(int st, int ed) {
if(st>ed) return 0;
int cnt = ed-st+1;
return cnt%sp ==0 ? cnt/sp : cnt/sp+1;
}
int solution(int n, vector<int> stations, int w) {
int answer = 0;
sp = 2*w+1; // spread -> 전체 전파 값, ex) w=1, sp=3 / w=2, sp=5;
answer += solve(1,stations.front()-w-1) + solve(stations.back()+w+1,n);
for(int i=1; i<stations.size(); i++)
answer += solve(stations[i-1]+w+1,stations[i]-w-1);
return answer;
}