[Programmers/프로그래머스] 2019 KAKAO BLIND RECRUITMENT [코딩테스트]
- [Lv. 2] 오픈채팅방
- [Lv. 1] 실패율
- [Lv. 2] 후보키
- [Lv. 4] 무지의 먹방 라이브
- [Lv. 3] 길 찾기 게임
- [Lv. 3] 매칭 점수
- [Lv. 4] 블록 게임
📌 문제


📝 제한사항

💻 입출력 예

📖 입출력 예에 대한 설명

📌 풀이
from itertools import combinations
def solution(relations):
candidates = []
columns_num = len(relations[0])
for k in range(1, columns_num + 1):
candidates += list(combinations(range(columns_num), k))
unique = []
for candidate in candidates:
temp = [tuple([relation[i] for i in candidate]) for relation in relations]
if len(set(temp)) == len(relations):
unique.append(candidate)
answer = set(unique)
for i in range(len(unique) - 1):
for j in range(i + 1, len(unique)):
if len(unique[i]) == len(set(unique[i]) & set(unique[j])):
answer.discard(unique[j])
return len(answer)
set()
자료형의 remove()
메소드는,
지우려는 엘리먼트가 존재하지 않으면 KeyError 발생
set()
자료형의 discard()
메소드는,
지우려는 엘리먼트가 존재하지 않더라도 KeyError 발생 없이 정상종료