combinations2 [자료구조] 세 소수의 합 파이썬 (prime number) from itertools import combinations def check(n): k = n**0.5 if n < 2: return False for i in range(2, int(k)+1): if n % i == 0: return False return True def solution(n): candidates = [] for i in range(2,n+1): if check(i): candidates.append(i) combi = combinations(candidates, 3) ans = 0 for c in combi: if sum(c) == n: ans += 1 return ans 2부터 n까지의 수 중에서 소수인 경우만 candidates 리스트로 저장 combinations 사용해서 .. 2021. 4. 22. [자료구조] 사탕 담기 파이썬 파이썬 조합을 활용해서 풀었는데 더 간편하게 푸는 방법이 있을 것 같다. from itertools import combinations def solution(m, weights): cnt = 0 for i in range(1,len(weights)): COMB = combinations(weights,i) for comb in list(COMB): if sum(comb) == m: cnt += 1 return cnt 조합을 구성하는 개수를 1부터 len(weights)까지 모든 조합을 순회하면서 조합내에서 만들어진 list의 원소들(tuple)의 합이 m인지 확인하면서 탐색한다. 효율적인 방법이 있을텐데 2021. 4. 20. 이전 1 다음