[programmers/py] 기지국 설치

승민·2024년 3월 17일

알고리즘

목록 보기
80/171

기지국 설치

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

문제 설명

  • 아파트의 개수 N, 현재 기지국이 설치된 아파트의 번호가 담긴 1차원 배열 stations, 전파의 도달 거리 W가 매개변수로 주어질 때, 모든 아파트에 전파를 전달하기 위해 증설해야 할 기지국 개수의 최솟값을 리턴하는 solution 함수를 완성해주세요
  • N: 200,000,000 이하의 자연수, 반복문을 2번 이상 쓸 수 없다.

문제 풀이

import math
def solution(n, stations, w):
    idx = 1
    answer = 0
    for i in stations:
        left ,right = i-w, i+w
        
        if left < 1:
            left = 1
        if right > n :
            right = n
            
        answer += math.ceil((left - idx) / (2*w+1))
        idx = right + 1
    
    if n - idx >= 0 :
        answer += math.ceil((n-idx+1) / (2*w+1))
    
    return answer

0개의 댓글