Combinations 4

[Python] 후보키

from itertools import combinations def solution(relation): relation_r = list(zip(*relation)) # 돌린거 col = len(relation_r) # 컬럼 개수 row = len(relation) # 행 개수 result = 0 # 유일성 만족하는 컬럼 1개 개수 not_candi = [] # 유일성 만족하지 못하는 컬럼 for i in range(col): if row == len(set(relation_r[i])): # 유일성을 만족하면 result += 1 # +1 else: not_candi.append(i) # 유일성을 만족하지 못하는 컬럼 리스트에 추가 make_candi = [] for i in range(2, len(no..

[Python] 4012. 요리사

1. 조합을 직접 구현하여 해결한 풀이 # 조합 구하기 def combination(idx, cnt, a_arr): if cnt == n//2: # 식재료 다 골랐다면 cal_diff(a_arr) # 두 음식의 맛 차이 구하러 고고 return for i in range(idx, n): combination(i+1, cnt+1, a_arr+[i]) # 다음 번호 구해 [0, 1, 2] -> [0, 1, 3] -> [0, 1, 4] # a, b 음식 맛 차이 구하기 def cal_diff(a_arr): global answer a, b = 0, 0 b_arr = [i for i in range(n) if i not in a_arr] # a 음식에서 선택하지 않은 식재료 선택 for i in range(n/..

[Python] 소수 만들기

from itertools import combinations def solution(nums): coms = list(combinations(nums, 3)) answer = 0 for com in coms : num = sum(com) count = 0 for i in range(2, num+1) : if num % i == 0 : count += 1 if count == 1 : answer += 1 return answer 풀이 ① combinations 함수를 사용하여 입력받은 nums에서 숫자 3개를 가져와 만들수 있는 조합을 coms에 리스트로 받는다. ② for 문을 통해 3개의 조합의 합이 ➀ (2번째 for문) 2부터 자기자신까지 반복하면서 i로 나누었을때 나누어 떨어지면 count에 +..