문제
https://school.programmers.co.kr/learn/courses/30/lessons/138476
이 문제는 해시를 이용해 해결할 수 있었습니다. 따라서, 딕셔너리를 활용하여 Key를 귤의 크기, Value를 Key의 크기에 따른 갯수로 묶어주었습니다. 이 후, 귤의 종류를 기준으로 내림차순 정렬해주어 종류가 가장 많은 귤의 개수를 판매 제한 개수에서 빼주도록 구현하여 해결하였습니다.
Python
def solution(k, tangerine):
answer = 0
orange = dict()
# (오렌지 크기, 갯수)의 딕셔너리 생성
for i in tangerine:
orange[i] = orange.get(i, 0) + 1
# 크기별로 내림 차순 정렬
sorted_ornage = sorted(orange.items(), reverse = True, key = lambda x : x[1])
#귤 크기 종류가 최소이면서, k개의 갯수를 판매하라.
for key, value in sorted_ornage:
if k<=0:
break
k-=value # 개수가 가장 귤의 수 만큼 차감 [(2,2) (3,2) (5,2)]
answer+=1
return answer'프로그래머스' 카테고리의 다른 글
| [프로그래머스] 2xn 타일링 - Python (0) | 2023.01.16 |
|---|---|
| [프로그래머스] 최솟값 만들기 - Python (0) | 2023.01.16 |
| [프로그래머스] 단어변환 - Python (0) | 2022.12.15 |
| [프로그래머스] 게임 맵 최단 거리 - Python (0) | 2022.12.13 |
| [프로그래머스] 더 맵게 - Java, Python (0) | 2022.12.07 |