> 문제
문제 : [기지국 설치]
> 문제풀이
n의 최댓값이 2억개이다.
이미 설치된 기지국 사이의 범위 사이즈를 구해서 기지국 통신 범위를 나눠서 연산하였다.
나머지가 0이라면 나눈값을, 0이 아니라면 1을 추가해주었다.
class Solution {
public int solution(int n, int[] stations, int w) {
int answer = 0, pos = 0, st = 0, et = 0, size = 0;
for(int i=0; i<stations.length; i++){
st = stations[i] - w < 1 ? 1 : stations[i] - w;
et = stations[i] + w > n ? n : stations[i] + w;
size = st - 1 - pos;
if(size > 0){
answer += size%(w*2+1)==0 ? size/(w*2+1) : size/(w*2+1) + 1;
}
pos = et;
}
size = n - pos;
if(size > 0){
answer += size%(w*2+1)==0 ? size/(w*2+1) : size/(w*2+1) + 1;
}
return answer;
}
}
문제 출처 : Programmers