728x90
문제
정수 배열 arr와 2차원 배열 queries가 매개변수로 주어진다.
queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴이다.
각 query마다 순서대로 s <= i <= e인 모든 i에 대해 k보다 크면서 가장 작은 arr[i]를 찾는다.
각 query의 순서에 맞게 답을 저장하여 리턴하는 함수를 작성해라.
728x90
나의 풀이
function solution(arr, queries) {
const result = [];
queries.map(([s, e, k]) => {
// filter 함수를 사용해서 조건으로 i값을 찾아낸 후 sort 함수로 정렬해 찾은 가장 작은 i
const tmp = arr.filter((v,i)=>( i>=s && i<=e && v>k )).sort((a, b)=> a-b)[0]
result.push(tmp ? tmp : -1);
});
return result;
}
다른 풀이
function solution(arr, queries) {
return queries.map(([s, e, k]) => arr.slice(s, e + 1).filter((n) => n > k).sort((a, b) => a - b)[0] || -1);
}
728x90
'🧬알고리즘 > Programmers' 카테고리의 다른 글
[JavaScript] 콜라츠 수열 만들기 (1) | 2024.06.05 |
---|---|
[JavaScript] 수열과 구간 쿼리 4 (0) | 2024.06.04 |
[JavaScript] 수 조작하기2 (1) | 2024.06.03 |
[JavaScript] 수 조작하기 1 (0) | 2024.06.03 |
[JavaScript] 주사위 게임 (0) | 2024.06.03 |
댓글