1. 문제
https://programmers.co.kr/learn/courses/30/lessons/70129
2. 풀이
자세한 풀이는 주석을 통해 설명을 도왔습니다.
2.1. 정답 풀이
from itertools import combinations
def solution(orders, course):
answer = []
for ln in course: # 코스 요리 개수
dict = {} # 코스 요리 구성을 세기 위한 dictionary
for x in orders: # 각 주문들에 대하여 combination을 이용하여 가능한 조합을 모두 생성(이 때 정렬을 꼭 해야한다)
possibles = [''.join(p) for p in combinations(sorted(x), ln)]
for one in possibles: # 가능한 조합들을 dictionary를 이용하여 세어줍니다.
dict[one] = dict.get(one, 0) + 1
for key in dict: # dictionary에 있는 요소들 중 큰 값만 추려서 정답에 추가합니다.
dict_max = max(dict.values())
if dict_max >=2 and dict[key] == dict_max:
answer.append(key)
return sorted(answer)