입출력 예
arr | queries | result |
[0, 1, 2, 4, 3] | [[0, 4, 2],[0, 3, 2],[0, 2, 2]] | [3, 4, -1] |
입출력 예 설명
입출력 예 #1
- 첫 번째 쿼리의 범위에는 0, 1, 2, 4, 3이 있으며 이 중 2보다 크면서 가장 작은 값은 3입니다.
- 두 번째 쿼리의 범위에는 0, 1, 2, 4가 있으며 이 중 2보다 크면서 가장 작은 값은 4입니다.
- 세 번째 쿼리의 범위에는 0, 1, 2가 있으며 여기에는 2보다 큰 값이 없습니다.
- 따라서 [3, 4, -1]을 return 합니다.
코드
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr, int[][] queries) {
int[] result = new int[queries.length];
Arrays.fill(result, -1);
for(int i = 0; i < queries.length; i++) {
int[] query = queries[i];
int s = query[0];
int e = query[1];
int k = query[2];
for(int ii = s; ii <= e; ii++) {
if(arr[ii] > k) {
result[i] = result[i] == -1 ? arr[ii] : Math.min(result[i], arr[ii]);
}
}
}
return result;
}
}
- 정답 배열을 답이 없을 때의 값인 -1로 전부 채운다
- 반복을 돌면서 조건에 맞는 답을 찾으면 배열에 넣는다
- 해당 자리의 값이 -1 이면 == 넣어진 값이 없으면
- 조건에 맞는 답을 넣는다
- 해당 자리의 값이 -1 이 아니면 == 넣어진 값이 있다
- 넣어진 값과 현재의 값을 비교해 작은 것을 넣는다
- 조건에 맞는 값이 없으면 초기값인 -1 이 들어간다
Share article