728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12979
class Solution {
public int solution(int n, int[] stations, int w) {
int answer = 0;
// 순번 지정
int location = 1;
int stationsLocation = 0;
while(location <= n) {
// 하나씩 순회하며 수행
if(stationsLocation < stations.length && stations[stationsLocation] - w <= location) {
// 만약 기존에 설치된 기지국의 영향권 안일 경우 해당 영향권 바로 다음칸까지 이동
location = stations[stationsLocation] + w + 1;
stationsLocation++;
}
else {
// 기존 기지국 영향권 밖일 경우 설치를 하는데, 가능하면 현재위치가 영향권에 드는 가장 오른쪽에 설치
// 겹치거나 그런건 상관 없음. 그냥 무조건 가장 오른쪽에 설치하면 됨.
answer++;
location += 2*w + 1;
}
}
return answer;
}
}
728x90
반응형
'알고리즘 > 문제 풀이 (출처: 프로그래머스)' 카테고리의 다른 글
[JAVA] 마법의 엘리베이터 (0) | 2023.04.23 |
---|---|
[JAVA] 가장 큰 수 (0) | 2023.04.19 |
[JAVA] 달리기 경주 (0) | 2023.04.09 |
[JAVA/BFS] 미로 탈출 (0) | 2023.04.02 |
[JAVA] 개인정보 수집 유효기간 (0) | 2023.04.02 |