이렇게 숫자가 있다 가정하면
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];
끝!!
'CodeKata > JS' 카테고리의 다른 글
CodeKata_js_50_가장 가까운 같은 글자 (0) | 2024.11.19 |
---|---|
KodeKata_js_49_두 개 뽑아서 더하기 (0) | 2024.11.19 |
CodeKata_js_47_문자열 내 마음대로 정렬하기 (0) | 2024.11.15 |
CodeKata_js_46_숫자 문자열과 영단어 (0) | 2024.11.15 |
CodeKata_js_45_시저 암호 (0) | 2024.11.15 |
댓글