프로그래머스: 메뉴 리뉴얼 풀이
Counter에 관한 포스팅
2021.06.02 - [(Python)파이썬/(Python)파이썬 문법] - 파이썬 - 리스트 원소 개수 구하기/collections모듈의 Counter클래스 활용 예제
파이썬 - 리스트 원소 개수 구하기/collections모듈의 Counter클래스 활용 예제
collections모듈의 Counter클래스 Counter클래스 활용 from collections import Counter arr=[1,2,3,3,6,2,1,4,4,4,5,5,5] cnt = Counter(arr) print("Counter(arr) =",cnt) #Counter(arr) = Counter({4: 3, 5: 3,..
eunhee-programming.tistory.com
combinations에 관한 포스팅
2021.06.18 - [(Python)파이썬/(Python)파이썬 문법] - (파이썬) 리스트 요소 조합하기/ permutations & combinations
(파이썬) 리스트 요소 조합하기/ permutations & combinations
리스트 요소 조합하기 예를들어 arr= [1,2,3,4]가 있을 때, 리스트 안의 숫자들을 여러가지 형태로 조합하고 싶을때가 있습니다. 그럴때 사용하는 두 가지 방법이 있습니다. 방법1: 순서 상관 있는
eunhee-programming.tistory.com
문제풀러가기
https://programmers.co.kr/learn/courses/30/lessons/72411?language=python3
코딩테스트 연습 - 메뉴 리뉴얼
레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서
programmers.co.kr
문제 분석
1. 문자열중, 공통된 문자를 찾는 문제이다.
2. course 리스트에 몇개씩 조합하면 되는지, 숫자가 있으므로 course를 활용하여 조합한다.
코드
from collections import Counter
from itertools import combinations
def solution(orders, course):
result=[]
for i in course:
rs=[]
for j in orders:
num = combinations(sorted(j),i)
rs+=num
count = Counter(rs)
if count:
max_count=max(list(count.values()))
if max_count>=2:
for key,value in count.items():
if value==max_count:
result.append(''.join(key))
result.sort()
return result
*이 코드는 다른 분이 짠 코드를 참고하여 작성한 코드입니다.
코드 풀이
from collections import Counter
from itertools import combinations
def solution(orders, course):
result=[]
for i in course: #i개씩 문자를 조합함
rs=[]
for j in orders:
num = combinations(sorted(j),i) #조합하기 전에 j문자열 정렬을 해줌.
rs+=num #rs안에 조합한 문자들을 넣어줌
count = Counter(rs) # Counter을 통해, 똑같은 조합결과가 몇개 있는지 세줌
if count: # Counter에 아무것도 없으면 패스, 있을때 if문 실행
max_count=max(list(count.values())) #Counter안의 값중 제일 큰 값만
if max_count>=2: #제일 큰 값이 2보다 작으면 패스, 2보다 크면 if문 실행
for key,value in count.items(): #Counter(list).items()는 키와 값의 한쌍
if value==max_count:
result.append(''.join(key))
result.sort()
return result
<잡담+배운점>
combinations를 쓴다는 것까지는 생각을 했지만,
Counter이 해시맵과 비슷하게 items()를 쓰고, key와 value값을 사용한다는 것은 생각을 못했다...!!!

'코딩테스트 > 코딩테스트 문제' 카테고리의 다른 글
코딩테스트 준비 - 프로그래머스: 괄호 회전하기 풀이 (파이썬) (0) | 2021.07.02 |
---|---|
코딩테스트 준비 - 프로그래머스: 튜플/2019 카카오 개발자 겨울 인턴십 풀이 (파이썬) (0) | 2021.07.02 |
코딩테스트 준비 - 프로그래머스: 예상 대진표 풀이 (파이썬) (1) | 2021.07.01 |
코딩테스트 준비 - 프로그래머스: 괄호 변환 풀이/재귀함수 문제 (파이썬) (2) | 2021.07.01 |
코딩테스트 준비 - 프로그래머스: 행렬 테두리 회전하기 풀이(파이썬) (2) | 2021.06.30 |
댓글