문제 링크
풀이 과정
•
본 풀이 과정은 코드 주석으로 대체합니다.
전체 코드
def solution(n, stations, w):
'''
기지국을 최소로 설치 -> 기지국 범위가 최대한 겹치치 않도록 해야함
현재 지점 C에 기지국이 설치되지 않은 경우
- C+W 지점에 기지국 설치(center) -> 왼쪽 지점부터 순서대로 채우기 위함
- C+W+(W+1) 위치로 현재 지점을 이동
현재 지점 C에 기지국이 설치된 경우
- D+W+1 지점으로 현재 지점을 이동
- D: 설치된 기지국 중심
- D-W <= C <= D+W
'''
answer = 0
current = 1 # 현재 위치
idx = 0 # 현재 기지국 인덱스
while current <= n:
if (idx < len(stations)) and (stations[idx]-w <= current <= stations[idx]+w):
current = stations[idx] + w + 1
idx += 1
else:
answer += 1
current += (2*w + 1)
return answer
Python
복사