function solution(array, commands) {
let answer = [];
answer = commands.map(el => array.slice(el[0] - 1, el[1]).sort()[el[2] - 1])
return answer;
}
commands
를 기준으로 map
을 한다. commands
의 각 배열에 할당된 값으로 slice
를 하면 주어진 array
를 자를 수 있다.
그 후, sort()
를 하여 정렬한다. 마지막으로 k번째 수를 찾는다.
sort()
함수는 정렬 기준을 정할 수 있는데 이를 지정하지 않으면 문자열로 비교해서 정렬한다고 한다. 한 자리 숫자들만 sort()
한다면 문제 없지만, 자릿수가 늘어나면 정확한 비교기준으로 제시 해주어야 한다.
let arr = [1, 30, 4, 20, 100, 200];
console.log(arr.sort());
// arr = [1, 100, 20, 200, 30, 4];
function solution(array, commands) {
let answer = [];
answer = commands.map(el => array.slice(el[0] - 1, el[1]).sort(
function(a, b) {
return a > b ? 1 : a < b ? - 1 : 0
}
)[el[2] - 1])
return answer;
}
sort()
안에 오름차순 정렬을 위한 함수만 추가 해 주면 완성.