나의 풀이
수도코드
array[commands[i][0]-1]
포함 array[commands[i][1]]
미만의 새로운 배열(newArr)을 복사한다.
- newArr을 오름차순 정렬한다.
- 정렬된
newArr[commands[i][2]-1]
를 배열 res에 push한다.
function solution(array, commands) {
const res = [];
for(let i=0; i<commands.length; i++){
const newArr = array.slice();
const el = newArr.slice(commands[i][0]-1, commands[i][1]);
res.push(el.sort( (a,b) => a-b )[commands[i][2]-1])
}
return res;
}
arr.slice(idx1, idx2)
는 arr[idx1]
부터 arr[idx2-1]
까지를 복사한다.
- 문제에서 주어진
~번째 수
는 배열에서 인덱스로 사용하기 위해 -1
해주어야 한다.
- sort 메소드는 compareFunction을 인자로 받고, 이를 생략한 경우 각 요소를 문자열로 변환해 문자열의 유니코드 값에 따라 정렬된다. 따라서, 이 경우에는 오름차순으로 정렬하기 위해 compareFunction을 위와 같이 작성해야 한다.