Lv.3 기지국 설치

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

 

프로그래머스

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

programmers.co.kr

주어진 범위 간격으로 아파트를 탐색하며 기지국을 세우는 접근 방법으로

코드를 작성하던 중 더 좋은 방법이 생각났다.

기존에 설치된 4G 기지국의 전파가 닿지 않는 아파트 중

인접한 아파트열의 길이를 구하고

기지국을 세울시의 전파 범위(전파의 도달 거리 * 2 + 1)로 나눠주면

전파가 닿지 않는 각 아파트열을 기지국 몇개로 채울 수 있는지 알 수 있다.

반복문 안의 코드는 4G 기지국의 왼쪽만 계산하므로

마지막 4G 기지국 ~ 아파트의 끝 사이도 확인하기위해 반복문 밖에 코드를 추가로 작성했다.

class Solution {
    public int solution(int n, int[] stations, int w) {
        int answer = 0;
        int start = 0;
        int range = w * 2 + 1;
        
        for (int i = 0; i < stations.length; i++) {
            int station = stations[i];
            int end = station - w - 1;
            answer += (end - start + range - 1) / range;
            start = station + w;
        }
        answer += (n - start + range - 1) / range;
        
        return answer;
    }
}

'문제 풀이 > 프로그래머스' 카테고리의 다른 글

Lv.3 보석 쇼핑  (0) 2023.06.10
Lv.3 불량 사용자  (0) 2023.06.10
Lv.3 숫자 게임  (0) 2023.06.02
Lv.3 단속카메라  (2) 2023.05.30
Lv.3 등굣길  (1) 2023.05.30
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유