ppotatoG


Back to all posts

K번째수

Written by ppotatoG & Posted on November 21st, 2021

K번째수

제출한 답

commands로 돌며 c[i][0] - 1, c[i][1]만큼 slice로 잘라준 후

sort로 정렬 후 k번째 수를 answer에 담아주기

function solution(a, c) {
let answer = []
for(let i = 0; i < c.length; i++){
let b = a.slice(c[i][0] - 1, c[i][1]).sort(function(a, b){
if(a > b) return 1
else if(a === b) return 0
else return -1
})
answer.push(b[c[i][2] - 1])
}
return answer
}

두번째

위 내용을 한줄로, sort를 한줄로 사용했다

function solution(a, c){
let answer = [];
for(let n = 0; n < c.length; n++){
answer.push(a.slice(c[n][0] - 1, c[n][1]).sort((a, b) => a - b)[c[n][2] -1])
}
return answer;
}

최근 보충한 답

보충보다는.. map으로 풀 수 있는지 보려 했는데,

효율성은 이것보다 두번째가 훨씬 좋다

function solution(array, c) {
return [...c].map((val, idx) => {
let num = array.slice(c[idx][0] - 1, c[idx][1]).sort((a, b) => a - b);
return num[c[idx][2] - 1];
})
}

Posted on November 21st, 2021