[Python] 프로그래머스(Lv2) - 메뉴 리뉴얼 (2021 KAKAO BLIND RECRUITMENT )

Kerri·2021년 3월 10일
0

코테

목록 보기
9/67

안녕하세요 :)

2021 KAKAO BLIND 채용 문제였던 메뉴 리뉴얼 문제입니다.
https://programmers.co.kr/learn/courses/30/lessons/72411

order에 있는 알파벳으로만 combination을 해서 만들어 준다음 dictionary에 넣어서 count값을 추가해주는 방식으로 구현했습니다.

sorted_dict = dict(sorted(d.items(), key = lambda x: x[1], reverse=True))

여기서 위 코드는 dictionary를 값(value)으로 내림차순 정렬한 코드입니다.

import itertools

def solution(orders, course):
    answer = []

    for course in course:
        d = {}
        for i, order in enumerate(orders):
            if len(order) >= course:
                order = sorted(list(order))
                combis = list(itertools.combinations(order, course))
                for c in combis:
                    c = ''.join(c)
                    if c not in d:
                        d[c] = 1
                    else:
                        d[c] += 1

        sorted_dict = dict(sorted(d.items(), key = lambda x: x[1], reverse=True))

        max_cnt = -1
        for i, k in enumerate(sorted_dict):
            if i == 0:
                max_cnt = d[k]
            if d[k] == max_cnt and max_cnt >= 2:
                answer.append(k)
            else:
                break

    return sorted(answer)
profile
안녕하세요 !

0개의 댓글