홍열 2021. 3. 8. 13:39
728x90

조합과 collections을 이용하면 풀리는 문제, 

 

처음에는 복잡하게 생각하다가...문제가 이렇게 복잡할수는 없다라고 생각하고 다시 풀어본 문제

 

python 풀이를 한 사람들은 대부분 combinations과 collections를 사용해서 풀었던것 같다. 

 

def solution_kakao_2(orders, course):
    answer = []

    for k in course:
        candidates = collections.defaultdict(int)
        for menu_li in orders:
            for li in list(combinations(menu_li, k)):
                res = ''.join(sorted(li))
                candidates[res] += 1

        sorted_candidates = collections.Counter(candidates).most_common()
        print(sorted_candidates)
        answer += [menu for menu, cnt in sorted_candidates if cnt>1 and cnt== sorted_candidates[0][1]]


    return sorted(answer)