일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- time complexity
- 시간복잡도
- itertools
- coding
- counter
- CodingTest
- Stack
- 데이터분석
- BFS
- lambda
- programmers
- 파이썬
- level4
- sql
- Level2
- Queue
- 코딩테스트
- 코딩
- coding test
- 조합
- 연습문제
- 코테
- mysql
- import re
- 완전탐색
- join
- lv4
- 프로그래머스
- collections
- python
- Today
- Total
ror_coding
[Programmers] 메뉴 리뉴얼 - 72411 본문
728x90
구현 문제로, 가능한 경우의 수를 어떻게 나누면 될지 정하는게 중요하다.
Question
각 손님들이 주문한 단품메뉴들이 문자열 형식으로 담긴 배열 orders, "스카피"가 추가하고 싶어하는 코스요리를 구성하는 단품메뉴들의 갯수가 담긴 배열 course가 매개변수로 주어질 때, "스카피"가 새로 추가하게 될 코스요리의 메뉴 구성을 문자열 형태로 배열에 담아 return 하도록 solution 함수를 완성해 주세요.
- orders 배열의 크기는 2 이상 20 이하입니다.
- orders 배열의 각 원소는 크기가 2 이상 10 이하인 문자열입니다.
- 각 문자열은 알파벳 대문자로만 이루어져 있습니다.
- 각 문자열에는 같은 알파벳이 중복해서 들어있지 않습니다.
- course 배열의 크기는 1 이상 10 이하입니다.
- course 배열의 각 원소는 2 이상 10 이하인 자연수가 오름차순으로 정렬되어 있습니다.
- course 배열에는 같은 값이 중복해서 들어있지 않습니다.
- 정답은 각 코스요리 메뉴의 구성을 문자열 형식으로 배열에 담아 사전 순으로 오름차순 정렬해서 return 해주세요.
- 배열의 각 원소에 저장된 문자열 또한 알파벳 오름차순으로 정렬되어야 합니다.
- 만약 가장 많이 함께 주문된 메뉴 구성이 여러 개라면, 모두 배열에 담아 return 하면 됩니다.
- orders와 course 매개변수는 return 하는 배열의 길이가 1 이상이 되도록 주어집니다.
Point
- comb를 사용해서 각 order이 가질 수 있는 경우의 수를 모두 구해서 extend로 comb_list에 담는다 (이때 extend 대신 += 를 사용한 코드는 같은 결과)
Code
from collections import Counter
from itertools import combinations as comb
def solution(orders, course):
result = []
for cnt in course:
comb_list = []
for order in orders:
comb_list += comb(sorted(order), cnt)
most_ordered = Counter(comb_list).most_common()
result += [ k for k, v in most_ordered if v > 1 and v == most_ordered[0][1] ]
return [ ''.join(v) for v in sorted(result) ]
![](https://t1.daumcdn.net/keditor/emoticon/face/large/021.png)
now me
On my github
728x90
'Algorithm > Python' 카테고리의 다른 글
[Python] datetime Library (1) | 2024.12.28 |
---|---|
[Programmers] 미로 탈출 - 159993 (0) | 2024.12.22 |
[Programmers] 배달 - 12978 (0) | 2024.12.22 |
[Programmers] 숫자 카드 나누기 - 135807 (0) | 2024.12.21 |
[Programmers] 시소 짝꿍 - 152996 (0) | 2024.12.13 |