Notice
Recent Posts
Recent Comments
Link
DevKim
[Python] 2021 카카오 BLIND RECRUITMENT - 메뉴 리뉴얼 본문
728x90
programmers.co.kr/learn/courses/30/lessons/72411
코딩테스트 연습 - 메뉴 리뉴얼
레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서
programmers.co.kr
[ 알고리즘 ]
구현
[문제 접근]
1. combonations 를 이용해 조합을 구해주었고
2. Counter을 이용해 나온 횟수를 구해주었다.
처음엔 collections 에 있는 defaultdict을 이용해서 문자열들의 조합을 하나씩 세주고,
그 후 정렬을 한 후에 최대값과 같은 애들을 하나씩 구해줬는데 그렇게하니
실행 케이스에서 2개 정도 시간 초과가 나서
아예 처음부터 리스트에 정렬해서 몽땅 저장한 후에 Counter을 이용하여 갯수를 세어줌
[코드]
from itertools import combinations
from collections import Counter
def solution(orders, course):
answer = []
food=[]
bag=[] # 임시 보관
Max=0
# 조합 구하기
for num in course:
List=[]
for order in orders:
for com in combinations(order,num):
List.append(''.join(sorted(com)))
# 개수 세고 개수 많은 것 차례로 정렬
counter=Counter(List).most_common()
if len(counter)!=0:
Max=counter[0][1]
for count in counter:
if Max==count[1] and count[1]>=2:
answer.append(count[0])
else:
break
else:
continue
answer.sort()
return answer
728x90
'알고리즘 PS' 카테고리의 다른 글
[Python] 2018 카카오 BLIND RECRUITMENT - 파일명 정렬 (0) | 2021.02.22 |
---|---|
[Python] 2020 카카오 인턴 기출 - 수식 최대화 (0) | 2021.02.22 |
[Python] 프로그래머스 Lv.2 - 큰 수 만들기 (0) | 2021.02.20 |
[Python] 프로그래머스 Lv.2 - 행렬의 곱셈 (0) | 2021.02.11 |
[Python] 프로그래머스 Lv.2 - 이진 변환 반복하기 (0) | 2021.02.11 |
Comments