[프로그래머스] LEVEL3 기지국 설치 JAVA

Pixel Dophin·2023년 9월 7일
0

프로그래머스

목록 보기
51/55

기지국 설치

문제링크

풀이

수학, 구현
1. 기지국 왼쪽부분에 설치해야하는 기지국 개수를 구하였다.
2. 기지국 사이에 설치해야하는 기지국 개수를 구하였다.
3. 마지막 기지국 오른쪽 부분에 설치해야하는 기지국 개수를 구하였다.

  1. 크게 위의 세부분으로 나눈 뒤 각각은 기지국이 설치 되어 있지 않은 부분을 gap으로 저장하고 해당 부분을 기지국의 최대 전파 범위로 나누어 최소로 설치해야하는 기지국의 개수를 구하였다.

코드

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

            answer += gap / range;
            if (gap >= 0 && gap % range != 0) {
                answer++;
            }
        }
        
        gap = (n - stations[stations.length - 1] - w);
        answer += gap / range;
        if (gap >= 0 && gap % range != 0) {
            answer++;
        }

        return answer;
    }
}
profile
안녕 👋 성장하고픈 개발자 💻 입니다

0개의 댓글

관련 채용 정보