less than 1 minute read

문제 풀이 방식

문제 풀이 (Java)

  • 처음에 효율성 문제 있었던 코드 :
class Solution {
    public int solution(int n, int[] stations, int w) {
        int answer = 0;
        double range = 2 * w + 1;
        
        for(int i = 0; i <= stations.length ; i++){
            if(i == 0){
                // 첫 기지국부터 첫 아파트 사이
                answer += (int) (Math.ceil((stations[i] - w - 1) / range));
            }else if(i == stations.length){
                // 마지막 기지국부터 마지막 아파트 사이
                answer += (int) (Math.ceil((n - stations[i-1] - w) / range));
            }else{
                // 기지국 사이에 있는 경우 
                answer += (int) (Math.ceil((stations[i] - stations[i-1] - range) / range));
            }
        }

        return answer;
    }
}

Leave a comment