https://school.programmers.co.kr/learn/courses/30/lessons/12979
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
주어진 범위 간격으로 아파트를 탐색하며 기지국을 세우는 접근 방법으로
코드를 작성하던 중 더 좋은 방법이 생각났다.
기존에 설치된 4G 기지국의 전파가 닿지 않는 아파트 중
인접한 아파트열의 길이를 구하고
기지국을 세울시의 전파 범위(전파의 도달 거리 * 2 + 1)로 나눠주면
전파가 닿지 않는 각 아파트열을 기지국 몇개로 채울 수 있는지 알 수 있다.
반복문 안의 코드는 4G 기지국의 왼쪽만 계산하므로
마지막 4G 기지국 ~ 아파트의 끝 사이도 확인하기위해 반복문 밖에 코드를 추가로 작성했다.
class Solution {
public int solution(int n, int[] stations, int w) {
int answer = 0;
int start = 0;
int range = w * 2 + 1;
for (int i = 0; i < stations.length; i++) {
int station = stations[i];
int end = station - w - 1;
answer += (end - start + range - 1) / range;
start = station + w;
}
answer += (n - start + range - 1) / range;
return answer;
}
}
'문제 풀이 > 프로그래머스' 카테고리의 다른 글
Lv.3 보석 쇼핑 (0) | 2023.06.10 |
---|---|
Lv.3 불량 사용자 (0) | 2023.06.10 |
Lv.3 숫자 게임 (0) | 2023.06.02 |
Lv.3 단속카메라 (2) | 2023.05.30 |
Lv.3 등굣길 (1) | 2023.05.30 |