https://programmers.co.kr/learn/courses/30/lessons/42748
function solution(array, commands) {
var answer = [];
for (var i = 0; i < commands.length; i++) {
let list = array.slice(commands[i][0] - 1, commands[i][1]).sort((a, b) => {
return a - b;
});
answer.push(list[commands[i][2]-1]);
}
return answer;
}
slice를 이용하여 i번째에서 j번째까지의 수를 뽑아서 정렬하고, answer에 k번째 수를 저장한다.
❗ 주의
처음에 sort를 그냥 sort()를 써서 사용했는데 두번째 테스트케이스에서 실패가 떴다.
질문란에서 찾아보니, sort()의 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다. 라고 나와있다.
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]
그래서 숫자를 비교해주게 변경하였더니 통과하였다.
var numbers = [1, 30, 4, 21, 100000];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
// [ 1, 4, 21, 30, 100000 ]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort