Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 |
Tags
- 은행원알고리즘
- application layer
- 편향된 지수
- @SubscribeMapping
- 알고리즘
- @Autowired
- 파이썬
- 프로그래머스
- 영속화
- 무한정 대기
- 데커
- 런타임 상수
- spring
- compgen
- allocationSize
- 쉘 스크립트
- Git
- 커밋 되돌리기
- API
- 리눅스
- intelij spring config
- JPA
- 백준
- 쿠키
- 기본키 전략
- JDBC
- m:n
- BindingResult
- 컴파일 타임 상수
- DTO
Archives
- Today
- Total
둘셋 개발!
[알고리즘] 프로그래머스 메뉴 리뉴얼 본문
포스트를 작성하기 전에 '개발하는 사막여우' 블로그의 소스코드를 가져온 것을 미리 알립니다!
(참고 해당 블로그 링크 :https://dev-note-97.tistory.com/128)
✏️문제 링크 :
https://programmers.co.kr/learn/courses/30/lessons/72411
✏️해답 sourceCode :
from itertools import combinations, permutations
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
counter = Counter(temp) # 가장 많이 주문한 단품메뉴의 주문 횟수
if len(counter) != 0 and max(counter.values()) != 1: # 중복된 것이 1개라도 있으면
# 한줄 :answer += [''.join(f) for f in counter if counter[f] == max(counter.values())]
for f in counter :
if counter[f] == max(counter.values()) : # 가장 많이 함께 주문한 단품메뉴 찾기
answer+=[''.join(f)] #문자열로 전환
return sorted(answer)
1. 주문한 단품의 조합을 찾기 위해 Combinations를 사용해야 겠다고는 생각해는데
내가 고민한 부분은 만약 'ABCD' 와 'CA'가 있고 2개의 단품으로 구성된 코스를 구한다고 하면, 순열로 찾아야 단품 A와 단품 C가 중복된 것을 알 수 있을 거라 생각해서 복잡했는데
해답 소스코드를 보니 그냥 sorted하면 간단하게 해결될 문제였다....!! 이런 한 끗차이가 정말 므숩다
2. 문제를 잘못 이해하고 있었다. 가장 많이 함께 주문한 단품메뉴를 찾아야 하는데 나는 손님 2명이상이 중복된 단품 메뉴를 고르면 그것도 다 포함시켜야 하는 것으로 착각했다...문제를 똑바로 읽고 이해하자
✏️새로 알게 된 개념
Counter() 함수를 사용하면 중복된 횟수를 구할 수 있다.
from collections import Counter
arr = [0,0,1,1,2,3,3,3,3,4,5]
print(Counter(arr))
Counter({3: 4, 0: 2, 1: 2, 2: 1, 4: 1, 5: 1})
'알고리즘' 카테고리의 다른 글
[알고리즘] 가사검색 - 이진탐색 (0) | 2022.06.22 |
---|---|
[알고리즘] 백준 공유기 설치 - 이진탐색 (0) | 2022.06.18 |
[알고리즘] 프로그래머스 오픈채팅방 - 시간 초과 해결 (0) | 2022.06.08 |
[알고리즘-구현] 문자열 압축 (0) | 2021.12.08 |
[그리디 문제] 무지의 먹방 라이브 (2) | 2021.12.01 |