728x90
반응형
1. 문제 설명
2. 풀이과정
해당 문제는 전파를 전달해야 할 구간을 구하고 해당 구간에 최소한으로 설치할 기지국의 개수를 구여 모두 더해주면 된다. 각 구간별 설치할 기지국의 최소 개수를 구하여 더하는 결과를 반복하다가 마지막 기지국에서의 계산이 끝나 반복이 종료되면, 이후 남은 구간도 고려해야 한다.
하여 마지막에 제일 뒤쪽 남은 구간에 대한 기지국 설치 개수를 계산하여 더해주면 된다.
- 올림 함수인 ceil()를 사용하기 위해 math 모듈을 불러온다. import math
- 전파를 전달해야 할 구간의 시작 위치를 저장할 변수를 생성하고 처음 아파트 번호를 저장한다. start = 1
- 기지국이 설치된 아파트의 번호를 하나씩 불러오며 for i in stations
- 전파를 전달해야 할 구간의 마지막 위치를 저장한다. end = i - w
- 전파를 전달해야 할 구간의 아파트 개수를 한 기지국이 전달 가능한 전파 거리를 나눠주고 이를 올림 한 값만큼 해당 구간에 기지국을 설치해야 한다. answer += math.ceil((end - start) / (2 * w + 1))
- 다음 전파를 전달해야 할 구간의 시작 위치를 변경한다. start = i + w + 1
- 기지국이 설치된 위치를 모두 가져온 다음 마지막으로 시작 위치에서부터 끝까지 구간에 기지국을 설치할 개수를 더한다. answer += math.ceil((n + 1 - start) / (2 * w + 1))
반응형
3. 소스코드
import math
def solution(n, stations, w):
answer = 0
start = 1
for i in stations:
end = i - w
answer += math.ceil((end - start) / (2 * w + 1))
start = i + w + 1
answer += math.ceil((n + 1 - start) / (2 * w + 1))
return answer
728x90
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] 삼각 달팽이 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.22 |
---|---|
[프로그래머스] 베스트앨범 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.20 |
[프로그래머스] 쿼드압축 후 개수 세기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.18 |
[프로그래머스] 전력망을 둘로 나누기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.15 |
[프로그래머스] 소수 찾기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.11 |
[프로그래머스] 다리를 지나는 트럭 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.09 |
[프로그래머스] 가장 큰 수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.07 |
[프로그래머스] 택배상자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.10.05 |