잔뜩 2025. 1. 27. 19:11

첫 번째 코드로 하니 , 테스트 제외 모든 항문이 틀려서 당황했다 ;;

생각해보니 s<= i <=e  범위 내의 arr[i] 에 1을 더해줘야 했는데

나는 i==s , i==e 로만 생각하니 틀렸던  것 !

잘못풀음 
class Solution {
    public int[] solution(int[] arr, int[][] queries) {
 
        for(int i=0; i<queries.length; i++){
            int s = queries[i][0];
            int e = queries[i][1];
            arr[s]+=1;
            arr[e]+=1;    
        }
        return arr;
    }
}

다시 범위안에 i 더해주는 방식으로 수정

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
 
        for(int i=0; i<queries.length; i++){
            int s = queries[i][0];
            int e = queries[i][1];
             for(int j =s; j<=e; j++) {
                arr[j] += 1;
            }
        }
        return arr;
    }
}

 

** 다른 사람 풀이

 for each로 하고 싶었는데 못해가지고 ㅋㅋ 아쉬운 마음에 가져옴 

class Solution {
    public int[] solution(int[] arr, int[][] queries) {

        for (int[] query : queries) {
            int s = query[0], e = query[1];
            for (int i = s; i <= e; i++)
                arr[i]++;
        }
        return arr;
    }
}
728x90