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 |