[2021 카카오 코딩테스트] 메뉴 리뉴얼 - 파이썬

2021. 12. 27. 05:00네카라쿠배 취준반 - 프로그래머스 문제 풀이

0. 자세한 설명은 YouTube 영상으로

 

1-1. Hash를 활용한 Solution

from itertools import combinations
def solution(orders, course):
    answer = []
    # 1. 각 order 정렬
    for i in range(len(orders)):
        orders[i] = "".join(sorted(orders[i]))
        print(orders[i])

    # 2. course_len 마다 조합 생성
    for course_len in course:
        hash = {}
        max = 0
        for order in orders:
            # 각 Order를 기준으로 courseLength 만큼의 조합 만들기
            for comb in combinations(order, course_len):
                key="".join(comb)
                new_value = hash.get(key,0) + 1
                hash[key] = new_value
                if max < new_value:
                    max = new_value

        # 3. 가장 많은 조합 저장
        if max > 1:
            for type in hash:
                if max == hash[type]:
                    answer.append(type)

    answer.sort()
    return answer

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

 

 

 

 

 

 

 

 

 

 

  • YouTube 영상에 자세한 내용을 정리했으니 참고하세요.