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 를 참조하면 된다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 72412번 문제 2021 KAKAO BLIND RECRUITMENT 순위 검색 (0) | 2021.03.04 |
---|---|
[프로그래머스] 72414번 문제 2021 KAKAO BLIND RECRUITMENT 광고 삽입 (0) | 2021.03.03 |
[프로그래머스] 72413번 문제 2021 KAKAO BLIND RECRUITMENT 합승 택시 요금 (0) | 2021.03.03 |
[프로그래머스] 72410번 문제 2021 KAKAO BLIND RECRUITMENT 신규 아이디 추천 (0) | 2021.03.02 |
[프로그래머스] 72416번 문제 2021 KAKAO BLIND RECRUITMENT 매출 하락 최소화 (0) | 2021.02.15 |