반응형
0. 들어가며
프로그래머스 후보키를 풀다가 기준이 되는 배열을 가지고 크기가 2, 3, 4 , ... 모든 경우의 배열을
만들어야 했는데 이런 경우도 생각보다 많이 나와서 한번 정리해보았다.
1. 사용 방식
[ 1, 10, 30, 50, 100, 300 ]인 기준 배열이 있다면 기준 배열을 가지고
[ 1 ], [ 10 ], [ 30 ], ... [ 300 ], [ 1, 10 ], [ 1, 30 ], ... [ 1, 10, 30, 50, 100, 300 ] 의 배열을 만든다.
한번에 만들 수 있지만, 원하는 크기의 배열을 만드는 방식으로 작업했다.
2. 코드 구현
const obj = [];
const numberArr = [ 1, 10, 30, 50, 100, 300 ];
function makeArr(obj, result, index, numberArr, lng) {
if (result.length === lng) {
return obj.push(result);
}
for (let i = index; i < numberArr.length; i++) {
const current = [...result, numberArr[i]];
makeArr(obj, current, i + 1, numberArr, lng);
}
}
makeArr(obj, [], 0, numberArr, 4);
console.log(obj);
재귀 함수를 사용해서 모든 경우의 수의 배열을 만들었다.
반응형
'알고리즘 > 풀이 힌트' 카테고리의 다른 글
[알고리즘] Queue - JavaScript (0) | 2022.08.07 |
---|---|
[알고리즘] Stack - JavaScript (1) | 2022.08.05 |
[알고리즘] 이진 탐색 - JavaScript (1) | 2022.07.29 |
[알고리즘] 배열을 반복해 순차적으로 값을 변경 및 수정하기 (1) | 2022.07.28 |
[알고리즘] 배열( 순차 리스트) (4) | 2022.04.20 |