제일 먼저 기본적인 최대공약수(GCD)와 최소공배수(LCM)을 구하는 방법을 복기 해보겠습니다.
let getGCD = (A, B) => { //두 개의 수를 입력받는다.
if(A % B === 0) {
return B;
}
return getGCD(B, A % B);
}
let getLCM = (A, B) => { //두 개의 수를 입력받는다.
return a*b / getGCD(A, B)
}
이처럼 재귀함수?처럼 사용해서 멋진 코드를 작성할수있다는걸 알려주는 시간이였습니다
여러가지 상황을 설명해주고 응용하는 실력을 늘리는게 목표입니다.
function permutator(inputArr) {
let results = [];
function permute(arr, memo) {
let cur;
for (var i = 0; i < arr.length; i++) {
cur = arr.splice(i, 1);
if (arr.length === 0) {
results.push(memo.concat(cur));
}
permute(arr.slice(), memo.concat(cur));
arr.splice(i, 0, cur[0]);
}
return results;
}
return permute(inputArr, []);
}