문제 : https://programmers.co.kr/learn/courses/30/lessons/42748
코드1.
function solution(array, commands){
let res = [];
for(let i = 0; i < commands.length; i++){
let startIdx = commands[i][0] - 1;
let tmp = array.slice(startIdx, commands[i][1]).sort((a, b) => a - b);
let resIdx = commands[i][2] - 1;
res.push(tmp[resIdx]);
}
return res;
}
slice와 sort만 알면 크게 어려운 건 아닌거같다. splice와 slice의 차이점만 조심하면 될 듯!
다른사람의 코드2.
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]
})
}
상위권에 있는 답안인데 다른것보다 배열 구조분해를 하고, filter를 돌려 배열을 채우는게 새로웠당. filter의 인덱스를 활용해 slice처럼 활용하기! (근데 쓸 수 있으면 slice쓰는게 좋다 다른 사람과의 소통이 더 편하니까)