Coding Test/programmers

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

Karla Ko 2023. 8. 10. 15:41
728x90

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

 

프로그래머스

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

programmers.co.kr

 

분석

아파트 개수 11, 기지국 설치된 아파트 번호 [4, 11], 전파의 도달 거리 1

1. 첫 기지국 앞 반경 못미치는 거리 추가 (2) [2]
2. 중간 기지국 반경 못미치는 거리 추가 (9-5=4) [2 ,4]
3. 마지각 기지국 반경 못미치는 거리 추가 (0) [2,4,0]
4. 거리 리스트 돌면서 거리/반경*2+1 더하기
2 ➔ 2 / (1*2+1) = 2/3 = 1 (올림)
4 ➔ 4  / (1*2+1) = 4/3 = 2 (올림)
0 ➔ 0  / (1*2+1) = 0

풀이

import math
def solution(n, stations, w):
    answer = 0
    dist=[]

    dist.append(stations[0]-w-1) # 앞
    
    for i in range(1,len(stations)): # 중간
        dist.append((stations[i]-w-1)-(stations[i-1]+w))
        
    dist.append(n-(stations[-1]+w)) # 뒤
    
    for i in dist:
        answer += math.ceil(i/(2*w+1))
    
    return answer

 

 

 

 

728x90