최대공약수
const getGcd = (a,b) => (b>0 ? getGcd(b,a%b) : a)
순열
function permutation(arr, selectNum) {
let result = [];
if (selectNum === 1) return arr.map((v) => [v]);
arr.forEach((v, idx, arr) => {
const fixer = v;
const restArr = arr.filter((_, index) => index !== idx);
const permuationArr = permutation(restArr, selectNum - 1);
const combineFixer = permuationArr.map((v) => [fixer, ...v]);
result.push(...combineFixer);
});
return result;
}
조합
function combination(arr, selectNum) {
const result = [];
if (selectNum === 1) return arr.map((v) => [v]);
arr.forEach((v, idx, arr) => {
const fixed = v;
const restArr = arr.slice(idx + 1);
const combinationArr = combination(restArr, selectNum - 1);
const combineFix = combinationArr.map((v) => [fixed, ...v]);
result.push(...combineFix);
});
return result;
}
2차원 배열 선언
let array = Array.from(Array(n), () => Array(m).fill(0));
'공부기록 > 자바스크립트 코딩테스트' 카테고리의 다른 글
[프로그래머스/JS] 시저 암호 (0) | 2022.06.21 |
---|---|
[프로그래머스/JS] 이상한 문자 만들기 (0) | 2022.06.21 |
[프로그래머스/JS] 최대공약수와 최소공배수 (0) | 2022.06.20 |
[프로그래머스/JS] 하샤드 수 (0) | 2022.06.20 |
[프로그래머스/JS] k번째 수 (0) | 2022.06.16 |