목표

문제 요구사항

array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면

  1. array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다.
  2. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다.
  3. 2에서 나온 배열의 3번째 숫자는 5입니다.

문제 풀이

정렬을 이용한 문제 풀이

  1. 데이터 자르기
    js 배열은 slice라는 내장함수를 제공한다. slice를 이용해 원하는 위치를 자르자. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
     commands.forEach( value => {
         let ary = [...array].slice(value[0] -1, value[1] )
         console.log(ary);
     })
    
     => 실행결과 
     [ 5, 2, 6, 3 ]
     [ 6 ]
     [
       1, 5, 2, 6,
       3, 7, 4
     ]
    
  2. 자른 데이터 정렬하기. 정렬 하는것도 마찬가지로 js 내장함수로 제공한다. sort를 이용해 정렬을 하자.

     commands.forEach( value => {
         let ary = [...array].slice(value[0] -1, value[1] ).sort((a,b) => a-b);
         console.log(ary);
     })
    
     => 실행결과 
     [ 2, 3, 5, 6 ]
     [ 6 ]
     [
       1, 2, 3, 4,
       5, 6, 7
     ]
    
  3. 원하는 데이터 추출하기
     commands.forEach( value => {
         let ary = [...array].slice(value[0] -1, value[1] ).sort((a,b) => a-b);
         answer = [ ...answer, ary[value[2]-1] ];
     })
    

결론