메뉴 리뉴얼

발자·2023년 6월 6일
0

programmers

목록 보기
23/34

문제

from itertools import combinations
from collections import Counter

def solution(orders, course):
    answer = []
    # course마다
    for k in course:
        tem = dict()
        # 주문마다
        for order in orders:
            # 조합마다 count하기
            for comb in combinations(order, k):
                comb = ''.join(sorted(comb))
                if comb in tem.keys():
                    tem[comb] += 1
                else:
                    tem[comb] = 1
        # count가 높은 순으로 정렬
        sorted_tem = sorted(tem.items(), key=lambda x : x[1], reverse=True)
        # count가 1이 아니고 가장 높은 메뉴만 추가
        # append로 하면 에러남! 가장 높은 메뉴가 1개가 아닐 수 있기 때문!
        answer+=[menu for menu, cnt in tem.items() if cnt != 1 and cnt == sorted_tem[0][1]]

    return sorted(answer)

🧩 Counter

0개의 댓글