문제가 꽤나 어려웠다..
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);
// answer배열에 정수 최대 값 넣어주기
for(int i = 0; i < queries.length; i++){
// 쿼리 길이만큼 돌기
for(int j = queries[i][0]; j <= queries[i][1]; j++){
// 쿼리의 1번째 까지 돌기
if(arr[j] > queries[i][2]){
// 만약 arr배열의 j번째 숫자가 k보다 클때의 조건
answer[i] = Math.min(answer[i], arr[j]);
// 조건을 만족하면 answe[i]에 대입 근데 처음에는 4가 들어갈텐데 k==2이고,
// 2보다 크면서 제일 작은수는 3이니깐 Math.min으로 for문을 돌면서 제일 작은 수를 대입시켜줌
}
}
if(answer[i] == Integer.MAX_VALUE){
answer[i] = -1;
// 위에 answer에 정수 최대값을 넣었는데
// 정수 최대값과 같으면 -1을 대입 즉, k보다 크면서 제일 작은 수가 없다는 뜻
}
}
return answer;
}
}