풀이:
function solution(array, commands) {
let answer = [];
for (let i = 0; i < commands.length; i++){
let sliced = array.slice(commands[i][0] - 1, commands[i][1]).sort((a,b)=>a-b);
answer.push(sliced[commands[i][2] - 1])
}
return answer;
}
단계별로
commands 배열의 첫번쨰부터 끝까지 실행하는 for 반복문안에
index 0 번의 0 번은 자르기 시작점 인데 받은 array 는 0번부터가 1이니까 -1 해주어야 한다,
index 0 번의 1번은 자르기 마지막점까지라 -1 를 안해도 된다.
그후 정렬해주고 index 0 번의 2번 숫자는 array 의 자르고 정렬한 배열속 자리수 이기에 -1 해준 값을 또 잘라준다.
자른 배열속 정수를 answer 에다가 .push 해주고 그값을 for 문이 끝나면 리턴한다.
다른사람 풀이
function solution(array, commands) {
return commands.map(command => {
const [sPosition, ePosition, position] = command
const newArray = array
.filter((value, fIndex) => fIndex >= sPosition - 1 && fIndex <= ePosition - 1)
.sort((a,b) => a - b)
return newArray[position - 1]
})
}