[Programmers] 메뉴 리뉴얼 (Python)
by 뚜부니
이 문제는 정해진 수만큼의 단품 메뉴 갯수가 포함된 코스 요리를 만드는 문제입니다.
단, 최소 2명 이상 주문한 음식이어야하고, 2명 이상 주문한 메뉴 조합이어야 합니다.
먼저 combinations를 사용해 정해진 단품 메뉴 갯수만큼 메뉴 조합을 생성하여 리스트에 저장합니다.
그 후 Counter를 사용해 메뉴 조합 리스트에서 각각의 메뉴 조합 수를 세어줍니다.
그 중 메뉴 조합이 가장 많이 나온 값을 max_로 지정해줍니다.
max_가 2 이상이면, 주어진 조건을 모두 만족하므로 코스 요리로 추가합니다.
위와 같은 방식으로 풀면 다음과 같습니다.
from itertools import combinations
from collections import Counter
def solution(orders, course):
answer = []
for c in course :
temp = []
for order in orders :
combi = combinations(sorted(order), c)
temp += combi
odict = Counter(temp)
if odict :
max_ = max(list(odict.values()))
if max_ >= 2:
for key, value in odict.items() :
if odict[key] == max_ :
answer.append(''.join(key))
return sorted(answer)
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 파일명 정렬 (Java) (0) | 2021.05.05 |
---|---|
[Programmers] 구명보트 (Java) (0) | 2021.05.01 |
[Programmers] 동물 수 구하기 (COUNT) (0) | 2021.04.17 |
[Programmers] 최솟값 구하기 (MIN) (0) | 2021.04.17 |
[Programmers] 이름이 있는 동물의 아이디 (MySQL) (0) | 2021.02.07 |
블로그의 정보
개발하는 두부
뚜부니