🖥️Frontend/Programmers

[JavaScript] 수열과 구간 쿼리 2

뉴발자 2024. 6. 3.
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

'🖥️Frontend > 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

댓글