프로그래머스에서 문제를 해결한, 다른 사람의 풀이를 구경하던 중 유용한 기법을 알게되었다.
배열을 활용해 변수를 생성하고 각각에 값을 할당하는 기법이다.
++ 추후 검색을 통해 위 기법의 이름이 구조 분해 할당이라는 것을 알았다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
구조 분해 할당 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식이다.
=== Destructuring 할당이라고도 부른다.
// let으로 선언한 임의의 배열 [a,b,c]에 배열(input)을 할당하면,
// 각 인덱스에 맞는 변수를 생성할 수 있다.
let input = [3, 4, 5];
let [a, b, c] = input;
console.log(a); // 3
console.log(b); // 4
console.log(c); // 5
이는 다음과 같은 문제에서 활용할 수 있다.
예시
철수는 300원을 가지고 있는데, 친구들에게 50원씩 나누어주려고 한다. 최대 몇 명의 친구에게 나누어 줄 수 있는가?
입력
input = [300, 50]
출력
6
알고리즘 풀이를 위해, 입력 배열(input)에 들어있는 300과 50을 각각 변수에 할당해야한다.
let money = input[0];
let give = input[1];
console.log(money); //300
console.log(give); //300
하지만 구조 분해 할당을 활용하여 변수를 선언하면, 더욱 간단하게 표현할 수 있다.
let [money, give] = input;
console.log(money); //300
console.log(give); //300