알고리즘/프로그래머스

기지국 설치 python

1.5볼트 2023. 5. 22. 01:47
728x90

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

 

프로그래머스

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

programmers.co.kr

 

일단 기지국 영향을 안 받는 구간을 구한다 그리고 그 구간을 2*w+1로 나눈 몫과 나머지가 있다면 1을 더해준다
구간의 길이가 5 w가 1이라면
5의 길이에 최대로 배치했을 때 1개가 양옆으로 1씩이니 3을 커버할 수 있고 그러면 최소 2개는 필요하다

 

def solution(n, t, w):
    a=s=0
    t.append(n+w+1)
    for i in t:
        b=i-w
        s+=((b-a-1)//(2*w+1) +(1 if (b-a-1)%(2*w+1) else 0)) if b-a-1 else 0
        a=i+w
    
    return s