본문 바로가기

알고리즘 문제풀이

기지국 설치

기지국 설치 (프로그래머스)

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

문제 설명

N개의 아파트가 일렬로 쭉 늘어서 있습니다.

이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다.

기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다.

그런데 5g 기지국은 4g 기지국보다 전달 범위가 좁아,

4g 기지국을 5g 기지국으로 바꾸면 어떤 아파트에는 전파가 도달하지 않습니다.

아파트의 개수 N,

현재 기지국이 설치된 아파트의 번호가 담긴 1차원 배열 stations,

전파의 도달 거리 W가 매개변수로 주어질 때,

모든 아파트에 전파를 전달하기 위해 증설해야 할 기지국 개수의 최솟값을 리턴하는 solution 함수를 완성해주세요

풀이

전파가 전달된 범위를 저장하는 변수와

기지국을 설치했을시 전파의 범위를 계산한 변수를 선언하고

배열 stations만큼 반복문을 돌면서

전파가 도달하지 않는 범위를 계산하고

기지국이 몇개나 들어갈 수 있는지 계산하면 정답을 구할 수 있습니다

 

function solution(n, stations, w) {
    var answer = 0;
    let power = 1;
    let range = w * 2 + 1;
    for (let i = 0; i < stations.length; i++) {
        if (stations[i] - w > power) {
            answer += Math.ceil((stations[i] - w - power) / range);
        }
        power = stations[i] + w + 1;
    }
    answer += Math.ceil((n - power + 1) / range);
    return answer;
}

'알고리즘 문제풀이' 카테고리의 다른 글

네트워크  (0) 2023.02.09
호텔 대실  (0) 2023.02.08
배달  (0) 2023.02.07
점프와 순간 이동  (0) 2023.02.07
영어 끝말잇기  (0) 2023.02.07