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

Bong2·2024년 5월 29일
0

알고리즘

목록 보기
29/63

문제 - 기지국 설치

문제 접근

  1. 아파트 1번부터 시작
  2. 현재 위치가 기지국의 범위 안에 있는 경우에는 기지국 범위 밖으로 이동
    (now + w +1 ) 만큼 이동
  3. 현재 위치가 기지국의 범위 밖에 있는 경우에는 기지국 설치 후 기지국 범위 밖으로 이동
import java.util.*;

class Solution {
    public int solution(int n, int[] stations, int w) {
        int answer = 0;
        int now = 1; //현재위치
        int idx = 0; //현재 기지국
        
        //아파트 범위내에서만 탐색
        while(now <= n)
        {
            //현재 위치가 기지국의 범위 안에 있는 경우 -> 기지국 범위 밖을 이동
            if(idx < stations.length && now >= stations[idx] - w)
            {
                //기지국 범위밖으로 이동 
                //기지국이 설치된 곳은 전파의 가운데이므로 기지국 에서 오른쪽 범위 + 1 만큼 이동
                now = stations[idx] + w + 1;
                idx++;
            }else{
                //기지국 설치
                answer++;
                //기지국 설치 후 기지국 범위 밖을 이동
                //기지국 설치는 now + w 위치에 함 그러므로 현재위치에서 왼쪽 + 오른쪽 범위 +1 만큼 이동
                now = now + (2 * w) + 1;
            }
        }
        
        return answer;
    }
}
profile
자바 백엔드 개발자로 성장하자

0개의 댓글