[코.기.트] 수열과 구간 쿼리 2

리프깅·2023년 7월 22일

프로그래머스

목록 보기
24/29

✔ 수열과 구간 쿼리 2 문제 보기


💻 코드

function solution(arr, q) {
    var answer = [];
    for(let i=0; i<q.length; i++) {
        let s = q[i][0]; let e = q[i][1]; let k = q[i][2]
        let tmp = arr.slice(s,e+1).filter(i=>i>k).sort((a,b)=>a-b)
        
        answer.push(tmp.length > 0 ? tmp[0] : -1)
    }
    return answer
}

👀 설명

쿼리의 0, 1, 2번 인덱스 값을 각각 s, e, k에 저장한다. tmp는 조건에 맞춰 s부터 e까지 arr을 자른 뒤, k보다 큰 값들을 오름차순으로 정렬한 배열이다.
answertmp의 0번 인덱스를 저장한다. k보다 큰 값 중 가장 작은 값을 저장해야 하기 때문이다. 만약 tmp의 길이가 0이라면 조건에 맞는 배열이 없다는 뜻이므로 -1을 저장한다.

profile
대학교 마지막 학기 공부기록

0개의 댓글