from itertools import combinations
from collections import Counter
def solution(orders, course):
answer = []
orders = list(map(sorted,orders))
for course_cnt in course:
temp = []
for order in orders:
temp += combinations(order,course_cnt)
dict_item = Counter(temp)
if dict_item:
max_value = max(dict_item.values())
max_dict = dict_item.most_common()
if max_value > 1:
for key,value in max_dict:
if value < max_value:
break
else:
answer.append(''.join(key))
answer.sort()
return answer

이 문제는 Counter와 combination 모듈을 이용해서 쉽게 구했다.

 

각 메뉴마다 combinations을 구해주고, 그 값들을 temp라는 리스트에 임시 저장을 해준다. 그런뒤에 Counter라는 모듈을 이용해서, 갯수를 쉽게 세준게 만들어준다.

 

거기서 max값을 찾고, 그 max값과 같은것들만 정답에 넣어주고 마지막에 정렬을 해준다.

 

Counter 모듈은 welog.tistory.com/106 를 참조하면 된다.

+ Recent posts