해당 알고리즘 자료는 제가 직접 푼 것도 있지만 다른 분들의 풀이과의 비교를 통해 더 나은 알고리즘을 공부하기 위해 정리한 것들입니다.
https://programmers.co.kr/learn/courses/30/lessons/12979
풀이 : 이분탐색 방식으로 문제에 접근
class Solution {
public int solution(int n, int[] stations, int w) {
int l = 1;
int r = n;
int ans = 0;
int idx = 0;
while(l <= r) {
int prev = stations[idx]-w;
int end = stations[idx++]+w;
while(l < prev) {
l += 2*w+1;
ans++;
}
l = end+1;
if (idx == stations.length && l <= r) {
while(l <= r) {
l += 2*w+1;
ans++;
}
}
}
return ans;
}
}