[프로그래머스_LV0]수열과 구간 쿼리 2 _ 자바스크립트

Hyoyoung Kim·2023년 5월 21일
0

수열과 구간 쿼리 2

https://school.programmers.co.kr/learn/courses/30/lessons/181923

문제설명

정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴입니다.

각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 k보다 크면서 가장 작은 arr[i]를 찾습니다.

각 쿼리의 순서에 맞게 답을 저장한 배열을 반환하는 solution 함수를 완성해 주세요.

단, 특정 쿼리의 답이 존재하지 않으면 -1을 저장합니다.

입출력 예

내 코드

function solution(arr, queries) {
    var answer = [];
    for(let [s,e,k] of queries){
        let temp = arr.filter((v,i)=>(i>=s&&i<=e&&v>k)).sort((a,b)=>a-b)[0]
        answer.push(temp?temp:-1)
    }

    return answer;
}

console.log(solution([0, 1, 2, 4, 3],[[0, 4, 2],[0, 3, 2],[0, 2, 2]]))

코드 풀이

function solution(arr, queries) {
    var answer = [];
    for(let [s,e,k] of queries){
        //v->요소값, i-> 순회하는 인덱스
        //작은것부터 나열해준다음 제일 작은 0번쨰 인덱스를 temp에 넣어줌
        let temp = arr.filter((v,i)=>(i>=s&&i<=e&&v>k)).sort((a,b)=>a-b)[0];
        //temp가 존재하면 temp값을 없으면 -1값을 answer에 넣어준다. 
        answer.push(temp?temp:-1)
    }
return answer
}

0개의 댓글