본문 바로가기
알고리즘/문제 풀이 (출처: 프로그래머스)

[JAVA] 기지국 설치

by 이민우 2023. 4. 19.
728x90
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

class Solution {
    public int solution(int n, int[] stations, int w) {
        int answer = 0;
        
        // 순번 지정
        int location = 1;
        int stationsLocation = 0;
        
        while(location <= n) {
            // 하나씩 순회하며 수행
            
            if(stationsLocation < stations.length && stations[stationsLocation] - w  <= location) {
                // 만약 기존에 설치된 기지국의 영향권 안일 경우 해당 영향권 바로 다음칸까지 이동
                location = stations[stationsLocation] + w + 1;
                stationsLocation++;
            }
            else {
                // 기존 기지국 영향권 밖일 경우 설치를 하는데, 가능하면 현재위치가 영향권에 드는 가장 오른쪽에 설치
                // 겹치거나 그런건 상관 없음. 그냥 무조건 가장 오른쪽에 설치하면 됨.
                answer++;
                location += 2*w + 1;
            }
        }
        
        return answer;
    }
}
728x90
반응형

'알고리즘 > 문제 풀이 (출처: 프로그래머스)' 카테고리의 다른 글

[JAVA] 마법의 엘리베이터  (0) 2023.04.23
[JAVA] 가장 큰 수  (0) 2023.04.19
[JAVA] 달리기 경주  (0) 2023.04.09
[JAVA/BFS] 미로 탈출  (0) 2023.04.02
[JAVA] 개인정보 수집 유효기간  (0) 2023.04.02