코딩테스트/프로그래머스

[프로그래머스][조합] 후보키

박소민 2024. 3. 9. 00:35
후보키
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

  • 내 풀이
from itertools import combinations as combi
def solution(relation):
    result=[]
    n=len(relation[0])
    num=[i for i in range(n)]
    remove=[]
    

    for k in range(1, n+1):
        for comb in combi(num,k):
            lst=[]
            for i in range(len(relation)):
                tmp=[]
                for c in comb:
                    tmp.append(relation[i][c])
                if tmp in lst:
                    break
                lst.append(tmp)

            else:
                for r in remove:
                    for x in range(1,len(comb)+1):
                        if r in list(combi(comb,x)):
                            break
                    else:
                        continue
                    break
                else:
                    remove.append(comb)

    return len(remove)