[프로그래머스] 기지국 설치 level3 자바

Jifrozen·2023년 1월 8일
0

Algorithm

목록 보기
69/70

문제

전형적인 그리디 문제입니다.
N: 200,000,000 이하의 자연수로 효율성 테스트도 신경써줘야ㅕ하는 문제입니다.
1. 기지국 설치를 하면 2w+1만큼 전파 터짐 w가 2면 --기지국-- 양쪽으로 w만큼 전파가 터지고 +1은 기지국 설치 위치
2. 최소의 기지국으로 전체 전파가 터져야함
3. 기존 설치된 기지국의 전파 신경써야함

풀이

class Solution {
    public int solution(int n, int[] stations, int w) {
        int answer = 0;
        
        int position=1;
        int station=0;
        while(position<=n){
           //기존 기지국 만난 경우
           if(station<stations.length&&position>=stations[station]-w){
           //기지국 끝+1으로 이동
                position=stations[station]+w+1;
                station++;
            }
            //기지국 설치 후 2w+1만큼 이동
            else{
                answer+=1;
                position+=(2*w+1);
                
            }
        }
        return answer;
    }
}

0개의 댓글