| 제출
function solution(array, commands) {
const answer = [];
for (let i = 0; i < commands.length; i++) {
const [begin, end, k] = commands[i];
answer.push(array.slice(begin - 1, end).sort((a, b) => a - b)[k - 1]);
}
return answer;
}
| 풀이과정
입력받은 commands를 구조분해할당으로 begin, end, k에 값을 할당한다.
~번째부터 자르고, ~번째 배열의 숫자를 반환해야 하므로 인덱스를 사용하는 부분에서는 -1을 해주어야한다.
| 개념
구조 분해 할당(Destructuring assignment)
- 배열이나 객체의 속성을 분리해서 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식
let a, b, rest;
[a, b] = [10, 20];
console.log(a, b); // 10 20
[a, b, ...rest] = [10, 20, 30, 40, 50];
console.log(`a={$a}, b={$b}, rest={$rest}`); // a=10, b=20, rest=[30, 40, 50]
// 배열 분해하기
// y에 x[0], z에 x[1]을 할당
// 배열 요소를 변수에 직접 할당하는 것보다 코드 양이 줄어든다.
// const y = x[0];
// const z = x[1];
const x = [1, 2, 3, 4, 5];
const [y, z] = x;
console.log(y, z); // 1 2
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 음양 더하기 - level 1 (javascript) (0) | 2022.09.19 |
---|---|
[프로그래머스] 약수의 개수와 덧셈 - level 1 (javascript) (0) | 2022.09.19 |
[프로그래머스] 3진법 뒤집기 - level 1 (javascript) (0) | 2022.09.05 |
[프로그래머스] 나머지가 1이 되는 수 찾기 - level 1 (javascript) (0) | 2022.09.05 |
[프로그래머스] 예산 - level 1 (javascript) (0) | 2022.09.05 |