찾아봤는데 자바스크립트 코드는 없네. 일단 책보고 자바스크립트로 변환한 것만 쓰고 내가 왜 못풀었는지, 책에 나와있는 내용을 설명하는건 나중에 하자
// let n = 4;
// let array = [
// [false, true, true, true],
// [true, false, true, true],
// [true, true, false, true],
// [true, true, true, false]
// ]
let n = 6;
let array = [
[false, true, true, false, false, false],
[true, false, true, true, true, false],
[true, true, false, true, true, false],
[false, true, true, false, true, true],
[false, true, true, true, false, true],
[false, false, false, true, true, false],
]
const taken = [false, false];
function countParings(taken) {
let res = 0;
let firstFree = -1;
for (let i = 0; i < n; i++) {
if (!taken[i]) {
firstFree = i;
break;
}
}
if (firstFree === -1) return 1;
for (let pairWith = firstFree + 1; pairWith < n; pairWith++) {
if (!taken[pairWith] && array[firstFree][pairWith]) {
taken[firstFree] = taken[pairWith] = true;
res += countParings(taken);
taken[firstFree] = taken[pairWith] = false;
}
}
return res;
}
console.log(countParings(taken))
'알고리즘 풀이' 카테고리의 다른 글
[자료구조 학습] 1. Linked List 정리 (0) | 2020.12.04 |
---|---|
[2020 KAKAO BLIND RECRUITMENT] 괄호 변환 (with Javascript) (0) | 2020.08.31 |
[leetcode] 펠린드롬 (0) | 2020.08.17 |
[자바스크립트] 개미 수열 풀이 (2) | 2018.10.21 |
HTML 라디오 버튼 name 사용하지 않고 제어하기. (0) | 2018.10.16 |