본문 바로가기
알고리즘

[프로그래머스- 메뉴 리뉴얼][파이썬]-21일차

by Jyujae 2022. 6. 15.

https://programmers.co.kr/learn/courses/30/lessons/72411

 

KEY POINT: Counter(most_common()), combinations

 

1. Counter

 

Counter개념으로 각각의 원소가 몇개씩 있느지를 카운트하는 것이 핵심이었다고 생각한다.

다만 combinations에 접근할 때 join과 sorted 로 미리 잔처리를 해주는 것도 시간 절약에 중요했다

 

2. combinations

 

a,b나 b,a 나 똑같으니까 combinations 사용

 

3. 전체 로직

 

가장 중요했던 포인트는 course 숫자에 맞게 따로따로 구별해주는 것이었다. 

=> 길이가 2인 것들 따로, 3인 것들 따로, 4인 것들 따로 해줘야 비교가 편했다(여기서 푸는데 시간이 오래 걸림)

 

ex) for  i in course 에서 i=2

각각의 메뉴에 접근

2로 combination 돌려놓고

싹 다 정렬

리스트에 추가하고

이 리스트를 counter로 바꾸고

최대 값 + 최대로 된 중복이 된 것까지

append 하고

 

이제 i=3으로 돌고 반복

 

즉, 길이별로 나눠주는 것이 포인트였다!!~