시작이 반

[프로그래머스] 메뉴 리뉴얼(python 파이썬) 본문

알고리즘/Programmers

[프로그래머스] 메뉴 리뉴얼(python 파이썬)

G_Gi 2021. 3. 18. 18:35
SMALL

programmers.co.kr/learn/courses/30/lessons/72411

 

코딩테스트 연습 - 메뉴 리뉴얼

레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서

programmers.co.kr

 

조합, 사전 관련 문제이다.

course 수에 따른 조합을 구하여 사전에 넣는다.

    from itertools import combinations


    def solution(orders, course):
        answer = []
        for cour in course:
            menus = dict()
            temps = list()
            for order in orders:
                temps.extend(list(combinations(sorted(order), cour)))

            for temp in temps:
                key = ''.join(temp)
                if key in menus:
                    menus[key] += 1
                else:
                    menus[key] = 1

            for menu in menus:
                if max(menus.values()) > 1:
                    if menus[menu] == max(menus.values()):
                        answer.append(menu)

        answer.sort()

        return answer

    solution(["XYZ", "XWY", "WXA"], [2, 3, 4])
LIST