from itertools import combinations
from collections import Counter

def solution(orders, course):
    answer = []
    temp = []
    for order in orders:
        temp.append(sorted(order))
    orders = temp

    for size in course:
        temp = []
        for order in orders:
            temp += combinations(order,size)
        temp = Counter(temp).most_common()
        for menu, cnt in temp:
            if cnt >= 2 and cnt >= temp[0][1]:
                answer.append(menu)
            else:
                break

    return sorted(''.join(x) for x in answer)

 

1. orders 리스트의 각 주문음식은 정렬되어 있지 않기 때문에 먼저 정렬해 줍니다.

2. course 리스트의 사이즈 별로 각 주문음식들의 조합을 구해줍니다.

3. Counter 함수를 통해 주문 횟수가 2번 이상이면서 가장 많이 주문된 메뉴를 answer 리스트에 추가합니다.

4. answer 리스트를 정렬합니다.

+ Recent posts