[프로그래머스 | LEVEL0 | JAVA] 수열과 구간 쿼리 2

BIN·2024년 4월 2일

프로그래머스

목록 보기
12/24

🔎 문제

❗주의사항

  • queries배열의 첫 번째 인덱스 배열을 보면 [0, 4, 2]로 이루어져있다
    arr배열의 0번부터 4번까지의 값 중에서 2보다 크면서 제일 작은 값을 찾는 문제이다

⭕ 풀이

//제출한 답
import java.util.*;

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        int[] answer = new int[queries.length];
        Arrays.fill(answer, Integer.MAX_VALUE);
        
        for (int j = 0; j < queries.length; j++) {
            for (int i = queries[j][0]; i <= queries[j][1]; i++) {
                if (arr[i] > queries[j][2]) {
                    answer[j] = Math.min(answer[j], arr[i]);
                }
            }
            if (answer[j] == Integer.MAX_VALUE) answer[j] = -1;
        }
        return answer;
    }
}
//다른 풀이
import java.util.Arrays;

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

        int[] answer = new int[queries.length];
        Arrays.fill(answer, -1);

        for (int i = 0; i < queries.length; i++) {
            int[] query = queries[i];
            int s = query[0], e = query[1], k = query[2];

            for (int j = s; j <= e; j++) {
                if (k < arr[j]) {
                    answer[i] = answer[i] == -1 ? arr[j] : Math.min(answer[i], arr[j]);
                }
            }

        }
        return answer;
    }
}
profile
A new developer...Bin

0개의 댓글