[2021 카카오 코딩테스트] 메뉴 리뉴얼 - 파이썬
2021. 12. 27. 05:00ㆍ네카라쿠배 취준반 - 프로그래머스 문제 풀이
0. 자세한 설명은 YouTube 영상으로
1-1. Hash를 활용한 Solution
from itertools import combinations
def solution(orders, course):
answer = []
# 1. 각 order 정렬
for i in range(len(orders)):
orders[i] = "".join(sorted(orders[i]))
print(orders[i])
# 2. course_len 마다 조합 생성
for course_len in course:
hash = {}
max = 0
for order in orders:
# 각 Order를 기준으로 courseLength 만큼의 조합 만들기
for comb in combinations(order, course_len):
key="".join(comb)
new_value = hash.get(key,0) + 1
hash[key] = new_value
if max < new_value:
max = new_value
# 3. 가장 많은 조합 저장
if max > 1:
for type in hash:
if max == hash[type]:
answer.append(type)
answer.sort()
return answer
print(solution(["XYZ", "XWY", "WXA"], [2,3,4]))
- YouTube 영상에 자세한 내용을 정리했으니 참고하세요.
'네카라쿠배 취준반 - 프로그래머스 문제 풀이' 카테고리의 다른 글
[2021 카카오 코딩테스트] 키패드 누르기 - 자바 java (4) | 2022.01.21 |
---|---|
[2021 카카오 코딩테스트] 순위 검색 - 자바 java (0) | 2021.12.29 |
[2021 카카오 코딩테스트] 메뉴 리뉴얼 - 자바 java (0) | 2021.12.22 |
[프로그래머스] 체육복 문제 풀이(탐욕법 Greedy Lv.1) - C++ (0) | 2021.12.20 |
[프로그래머스] 체육복 문제 풀이(탐욕법 Greedy Lv.1) - 파이썬 python (0) | 2021.12.15 |