// 해결 못해서 다른사람의 풀이 보고 공부***
// 아직 완벽히 이해X
이하 다른 사람의 풀이
function solution(relation) {
const cols = relation[0].length
const rows = relation.length
const sets = 1 << cols
const sk = new Set()
for (let i=1; i<sets; i++) {
const tmp = new Set()
for (let row=0; row<rows; row++) {
let key = ''
for (let col=0; col<cols; col++) {
if (i & (1 << col)) key = String(key) + String(relation[row][col])
}
tmp.add(key)
}
if (tmp.size === rows) sk.add(i)
}
for (let i of sk) {
for (let j of sk) {
if (i >= j) continue
if ((i & j) === i) sk.delete(j)
}
}
console.log(Array.from(sk).map(e => e.toString(2)))
return sk.size
}
ES6 모듈 - new Set()
The Set object lets you store unique values of any type, whether primitive values or object references.
튜플(tuple)
셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음