기지국 설치

해당 알고리즘 자료는 제가 직접 푼 것도 있지만 다른 분들의 풀이과의 비교를 통해 더 나은 알고리즘을 공부하기 위해 정리한 것들입니다.

프로그래머스 - 기지국 설치

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;
    }
}

좋은 웹페이지 즐겨찾기