programmers/level1
[level1] - k번째수
태기의삶
2020. 4. 1. 22:13
[풀이]
array = [1, 5, 2, 6, 3, 7, 4]
commands = [[2,5,3], [4,4,1], [1,7,3]]
return [5,6,3]
<입출력 예 설명>
[1, 5, 2, 6, 3, 7, 4]를 2번째부터 5번째까지 자른 후 정렬합니다.
[2, 3, 5, 6]의 세 번째 숫자는 5입니다.
[1, 5, 2, 6, 3, 7, 4]를 4번째부터 4번째까지 자른 후 정렬합니다.
[6]의 첫 번째 숫자는 6입니다.
[1, 5, 2, 6, 3, 7, 4]를 1번째부터 7번째까지 자른 후 정렬합니다.
[1, 2, 3, 4, 5, 6, 7]의 세 번째 숫자는 3입니다.
for문을 통해 commands의 길이만큼 총 3번 반복하고, slice(start, end)를 이용하여 시작점과 끝점 사이의 해당 수를 자르고, sort()를 통해 오름차순 정렬을 한다.
그러고 나서, answer에 push()를 하여 해당 k번째수를 return 한다.
[code]
function solution(array, commands) {
var answer = [];
for(var i=0; i<commands.length; i++){
var sliced = array.slice(commands[i][0]-1, commands[i][1]).sort((a, b)=> a-b);
answer.push(sliced[commands[i][2]-1]);
}
return answer;
}