티스토리 뷰

728x90

문제

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

 

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

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

programmers.co.kr

 

풀이 및 소스코드

딕셔너리에 넣어서 비교해준 후 조건에 부합하면 answer에 넣는 방식으로 풀었다.

from itertools import combinations
def solution(orders, course):
    answer = []
    for cou in course:
        candi = {}
        for order in orders:
            combi = combinations(sorted(order), cou)
            for c in combi:
                if c in candi:
                    candi[c] += 1
                else:
                    candi[c] = 1
        candi = sorted(candi.items(), reverse=True, key=lambda item:item[1])
        for i in range(len(candi)):
            if candi[i][1] == candi[0][1] and candi[i][1]>=2:
                answer.append(''.join(candi[i][0]))
    return sorted(answer)
반응형