PS/프로그래머스
[프로그래머스 LV 2] 메뉴 리뉴얼 파이썬
BLUE_ERASER
2021. 5. 19. 09:51
728x90
https://programmers.co.kr/learn/courses/30/lessons/72411?language=python3
코딩테스트 연습 - 메뉴 리뉴얼
레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서
programmers.co.kr
조합으로 모든 경우를 찾은 후에 해싱하고 가장 큰 값을 찾는 문제
파이썬은 combinations 와 Counter가 있어 편함
카운터는 모든 키에 대해 몇개인지 값을 더해줌
join을 사용하면 원하는 값만 골라올 수 있음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
from itertools import combinations
from collections import Counter
def solution(orders, course):
answer = []
for i in course:
temp=[]
for j in orders:
combi = combinations(sorted(j),i)
temp+=combi
counter = Counter(temp)
if len(counter) !=0 and max(counter.values())>1:
answer +=[''.join(x) for x in counter if counter[x]==max(counter.values())]
return sorted(answer)
|
cs |
728x90