티스토리 뷰
Algorithm/Implementation
(Python) - 프로그래머스(2021 KAKAO BLIND RECRUITMENT) : 메뉴 리뉴얼
하눤석 2022. 1. 18. 19:47728x90
- 해설 :
손님의 단품요리 주문내역 orders와 코스로 구성할 가짓수 course 배열이 주어질 때, 각 코스마다 어떤 조합으로 코스를 구성해야 가장 잘 팔릴지 선택하는 문제이다. 손님이 단품으로 주문한 메뉴들의 조합을 통해 어떤 코스가 가장 인기있을지 유추해야 한다.
- 풀이 :
각 손님의 주문내역에서 가능한 요리의 조합을 list에 전부 append한다. 이후 Counter 모듈을 사용하여 list에서 가장 많이 존재하는 원소를 찾으면 된다. 주문 횟수가 같은 요리의 조합이 존재할 수 있고, 주문 횟수가 1번씩인 조합이 가장 많은 주문횟수를 가진 조합일수도 있기 때문에 최소 주문횟수 2를 넘기는 모든 최댓값을 가진 조합을 answer에 넣어주었다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | from itertools import combinations from collections import Counter def solution(orders, course): answer = [] for c in course: lst = [] for s in orders: l = [''.join(i) for i in combinations(sorted(s),c)] lst += l cnt = Counter(lst).most_common() m = 2 for key in cnt: if key[1] >= m: m = key[1] answer.append(key[0]) return sorted(answer) | cs |
320x100
'Algorithm > Implementation' 카테고리의 다른 글
(Python) - 프로그래머스 (2019 KAKAO BLIND RECRUITMENT) : 실패율 (0) | 2022.01.19 |
---|---|
(Python) - 프로그래머스(2020 KAKAO BLIND RECRUITMENT) : 괄호 변환 (0) | 2022.01.19 |
(Python) - 프로그래머스 : 행렬 테두리 회전하기 (0) | 2022.01.18 |
(Python) - 프로그래머스 : 완주하지 못한 선수 (0) | 2022.01.17 |
(Python) - 프로그래머스 : 음양 더하기 (0) | 2022.01.17 |
댓글
© 2022 WonSeok, All rights reserved