Programming/Programmers 문제풀이
메뉴 리뉴얼
홍열
2021. 3. 8. 13:39
728x90
조합과 collections을 이용하면 풀리는 문제,
처음에는 복잡하게 생각하다가...문제가 이렇게 복잡할수는 없다라고 생각하고 다시 풀어본 문제
python 풀이를 한 사람들은 대부분 combinations과 collections를 사용해서 풀었던것 같다.
def solution_kakao_2(orders, course):
answer = []
for k in course:
candidates = collections.defaultdict(int)
for menu_li in orders:
for li in list(combinations(menu_li, k)):
res = ''.join(sorted(li))
candidates[res] += 1
sorted_candidates = collections.Counter(candidates).most_common()
print(sorted_candidates)
answer += [menu for menu, cnt in sorted_candidates if cnt>1 and cnt== sorted_candidates[0][1]]
return sorted(answer)