CodeKata_js_48_K번째수

이렇게 숫자가 있다 가정하면

2번부터 5번까지 정렬한 뒤 3번째

해당 번호에 -1 하여 0번을 1번으로 맞춰준다.
그리고
2번 부터 5번까지 자르면

해당 값을 정렬하면

해당 값의 3번째

값 5
이러한 방식으로 입력을 3번 받아서
배열 [a,b,c] 를 받아와야 한다.
입력은 배열 안에 배열
[[2,5,3],[4,4,1],[1,7,3]] 으로 받아온다.
여기서는 구조분해 할당을 사용하여
let [i,j,k] of commands를 사용해준다.
function solution(array, commands)
{
let answer = [];
// 구조 분해 할당
for (let [i, j, k] of commands)
{
}
return answer;
}
이렇게 되면 i, j, k 각각에는
i,j,k= [2,5,3]
i,j,k = [4,4,1]
i,j,k = [1,7,3]
의 값이 할당 될것이다.
그럼 이제 글자를 잘라보자!
function solution(array, commands)
{
let answer = [];
for (let [i, j, k] of commands)
{
//글자를 잘랐다!
let temp = array.slice(i - 1, j);
}
return answer;
}
array = [1,5,2,6,3,7,4]
i, j, k =[2,5,3]
해당 글자를 잘랐다.
첫번째
temp 에는 2 -1 = 1 index 부터 5 [해당 기능 내부(-1) for 문이 n<5 만큼 회전] 4번 index 까지 자른다!

실행하여 결과물

여기까지 왔으니 이제 정렬해야한다.
function solution(array, commands)
{
let answer = [];
for (let [i, j, k] of commands)
{
let temp = array.slice(i - 1, j);
temp.sort((a, b) => a - b);
//정렬 오름차순
}
return answer;
}
정렬하면

여기에서 순서
k 값의 3번

값 5를 들고와야한다.
function solution(array, commands)
{
let answer = [];
for (let [i, j, k] of commands)
{
let temp = array.slice(i - 1, j);
temp.sort((a, b) => a - b);
answer.push(temp[k - 1]);
// k - 1값을 들고온다.
}
return answer;
}
해당 index는 0부터 시작하니 -1을 해주고
answer에 집어넣어주면
answer =[5] 가 된다
두번째 값
i,j,k = [4,4,1]
4번에서 4번까지


값이 6 밖에 없다
여기서 정렬하고 1번을 가져와도
값은 6이다.

현재 값 answer =[5,6]
3번
i,j,k = [1,7,3]

모든 값을 다 가져온다
그리고 해당값을 정렬하면

순서대로 1부터 7까지
여기서 k =3

그럼 값은 3이되고

answer =[5,6,3];
끝!!
