[EP 077] 소수의 합으로 나타내는 경우의 수
오일러 프로젝트 77번 문제. 10을 소수들의 합으로 나누는 경우의 수는 다음과 같이 다섯가지이다. 7+3 5+5 5+3+2 3+3+2+2 2+2+2+2+2 소수들의 합으로 나누는 경우의 수가 처음으로 5000을 넘는 수는 무엇인가? from typing import Set, Dict from functools import lru_cache from pprint import pprint primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] @lru_cache() def summations(n: int) -> Set: # print(">"*depth + str(n)) # ..
Connected Component
>>> data = [("ㄱ","ㄴ"), ("ㄴ","ㄷ"), ("ㄷ","ㄱ"), ("ㄱ","ㄴ"), ("ㄹ","ㅁ"), ("ㅂ","ㅅ"), ("ㅇ","ㄹ")] >>> data [('ㄱ', 'ㄴ'), ('ㄱ', 'ㄷ'), ('ㄴ', 'ㄷ'), ('ㄹ', 'ㅁ'), ('ㄹ', 'ㅇ'), ('ㅂ', 'ㅅ')] >>> class ConnectedGroups: def __init__(self): self.groups = [] # groups remain mutually exclusive def add(self, e): set_e = set(e) overlap_index = [] for i, g in enumerate(self.groups): if set_e & g: overlap_index.append(i) if..