[프로그래머스] 기지국 설치 (파이썬)
728x90
반응형
예시
1 2 3 4 5 6 7 8 9 10 11
cur (설치할 기지국 위치는 1에서 시작)
w가 1인 경우
다음 기지국 설치 위치를 cur+2*w+1 하는 이유는 cur는 1을 기준으로 해도 사실상 2에 설치해서
1(기준 위치)~2(실제 설치 위치)~3을 커버하는 거라고 보면 된다
즉 기준위치는 cur인 1이지만 실제 설치 위치는 2인 것이고 cur+2*w+1이 다음 새로 설치 가능한지 보는 이유이다.
cur(기준 위치)가 stations[idx]-w (기존 기지국이 닿는 범위)보다 작아야 기존 기지국 위치와 겹치지 않는다.
겹친 다면 기지국이 닿는 오른쪽 전파범위 (stations[idx]+w)+1인 위치를 다음 기준 위치(cur)로 잡는다.
def solution(n, stations, w):
answer = 0
cur=1
idx=0
while cur<=n:
# 설치된 전파에 닿지 않는 위치라면
if idx>=len(stations) or cur<stations[idx]-w:
cur+=2*w+1
answer+=1
else:
cur=stations[idx]+w+1
idx+=1
return answer
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 전화번호 목록 (python, 해시) (0) | 2020.12.22 |
---|---|
[프로그래머스] 완주하지 못한 선수 (Python, javascript) (0) | 2020.12.22 |
[프로그래머스] 쿼드 압축 후 개수 세기 (0) | 2020.12.13 |
[프로그래머스] 이진 변환 반복하기 (python) (0) | 2020.12.12 |
[프로그래머스] 내적 (파이썬 ,python, javascript) (0) | 2020.12.12 |
TAGS.