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

 
by 박신종

> 문제

문제 : [기지국 설치]



> 문제풀이

n의 최댓값이 2억개이다.

이미 설치된 기지국 사이의 범위 사이즈를 구해서 기지국 통신 범위를 나눠서 연산하였다.

나머지가 0이라면 나눈값을, 0이 아니라면 1을 추가해주었다.

class Solution {
    public int solution(int n, int[] stations, int w) {
        int answer = 0, pos = 0, st = 0, et = 0, size = 0;
        for(int i=0; i<stations.length; i++){
            st = stations[i] - w < 1 ? 1 : stations[i] - w;
            et = stations[i] + w > n ? n : stations[i] + w;
            size = st - 1 - pos;
            if(size > 0){
                answer += size%(w*2+1)==0 ? size/(w*2+1) : size/(w*2+1) + 1;
            }
            pos = et;
        }
        size = n - pos;
        if(size > 0){
                answer += size%(w*2+1)==0 ? size/(w*2+1) : size/(w*2+1) + 1;
        }

        return answer;
    }
}




문제 출처 : Programmers