✏️기록하는 즐거움
article thumbnail

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

|  제출

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

 

profile

✏️기록하는 즐거움

@nor_coding

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!