알고리즘

프로그래머스 기지국 설치 (JAVA)

박카스마시며코딩 2022. 6. 2. 13:02

https://programmers.co.kr/learn/courses/30/lessons/12979

 

코딩테스트 연습 - 기지국 설치

N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5

programmers.co.kr

저는 해당 문제를 구현을 통해서 문제를 해결하였습니다.

저는 1번 아파트와 각각 기지국, N번 아파트의 길이를 기지국의 커버 길이(2w + 1)를 나누고 모듈러 연산을 통해 각각의 사이에 몇 개의 기지국이 들어가야하는지를 구하였습니다.

class Solution {
    public int solution(int n, int[] stations, int w) {
        int answer = 0;
        int prev = 1;
        int divide = 2 * w + 1;
        for(int i = 0 ; i <= stations.length ; i++){
            int now = n + 1;
            if(i != stations.length){
                now = stations[i] - w;
            }
            if(now - prev > 0){
                answer += (now - prev) / divide;
                if( (now - prev) % divide != 0 ){
                    answer++;
                }
            }
            prev = now + 2 * w + 1;
        }
        return answer;
    }
}