조합 검사 중 조건을 만족할 시 조합의 부분조합을 구해 중복되는것이 있으면 세주지 않았습니다.
from itertools import combinations
def solution(relation):
n = len(relation[0])
cnt = 0
checked = set()
for i in range(1, n + 1):
for comb in combinations([k for k in range(n)], i):
dicts = set()
tmp = []
for row in relation:
tmp.append(''.join(row[each] for each in comb))
flag = 0
for c in tmp:
if flag: break
if c not in dicts:
dicts.add(c)
else:
flag = 1
break
if not flag:
flag = 0
for i in range(1, len(comb)):
if flag: break
for com in combinations(list(comb), i):
if com in checked:
flag = 1
break
if not flag:
checked.add(comb)
cnt += 1
return cnt
'practivceAlgorithm > programmers' 카테고리의 다른 글
[Programmers][Python] KAKAO 2019 실패율 (0) | 2021.10.28 |
---|---|
[Programmers][Python] KAKAO 2019 오픈채팅방 (0) | 2021.10.28 |
[KAKAO 2021][Python] 순위 검색 (0) | 2021.10.24 |
[KAKAO 2020][Python] 문자열 압축 (0) | 2021.10.24 |
[Kakao2020][Python] 괄호 변환 (0) | 2021.10.24 |