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