https://school.programmers.co.kr/learn/courses/30/lessons/72411
from itertools import combinations
def solution(orders, course):
answer = []
for num in course:
com = []
for ord in orders:
ord = sorted(ord)
if len(ord) >= num:
com+=list(combinations(ord,num))
com = list(set(com))
max_count = 0
temt = []
for c in com:
count = 0
for o in orders:
check = True
for i in range(num):
if c[i] not in o:
check = False
if check:
count+=1
if count>=2:
if count >= max_count:
max_count = count
temt.append((c,count))
temt.sort(key=lambda x:(-x[1]))
for t in temt:
if t[1]==temt[0][1]:
answer.append(''.join(t[0]))
answer.sort()
return answer
처음에는 주문된 모든 메뉴를 추출해서 조합을 구했다.
그런데 이렇게 하면 시간초과가 발생한다
예를 들어 ['ABC','DEF'] 가 있고 2개의 코스요리를 구한다면 'AD', 'AF'같은 코스는 절대 나올 수 없기 때문이다