Combinations
사용 → 각 order에서 나올 수 있는 조합을 구한다.Counter
사용 → 나올 수 있는 조합의 횟수를 dictionary에 저장 ( key: 메뉴조합, value: 횟수)from itertools import combinations
from collections import Counter
def solution(orders, course):
answer = []
for c in course:
arr=[]
for order in orders:
for i in combinations(order,c):
tmp=''.join(sorted(i))
arr.append(tmp)
candidates_cnt=dict(Counter(arr))
s_candidates_cnt=sorted(candidates_cnt.items(),key=lambda x:x[1],reverse=True)
if s_candidates_cnt:
max_value=s_candidates_cnt[0][1]
print("max_value",max_value)
for k,v in candidates_cnt.items():
if v==max_value and v>=2:
answer.append(k)
# 사전순으로 (오름차순) 정렬
return sorted(answer)