문제
https://school.programmers.co.kr/learn/courses/30/lessons/138476
설계
- 귤을 bucket에 담아 몇개인지 count한다
- bucket을 내림차순으로 정렬한다.
- 최소 종류로 귤을 판매하기 위해 가장 많은 귤부터 차례대로 빼준다.
- 판매하려는 k만큼 귤을 담거나 넘치면 return 한다.
# 귤 고르기
def solution(k, tangerine):
bucket = [0] * (max(tangerine) + 1) # 0이 있기 때문에 bucket + 1 만큼 생성
for i in range(len(tangerine)):
bucket[tangerine[i]] += 1
bucket.sort(reverse=True)
answer = 0
for i in range(len(bucket) - 1): # 0은 확인하지 않아도 되므로 -1
k -= bucket[i]
answer += 1
if k <= 0:
return answer
'PS (Problem Solving) > Programmers' 카테고리의 다른 글
[프로그래머스] 과일 장수 (0) | 2022.12.12 |
---|---|
[프로그래머스] 불길한 수열 (불행한 수)(Unlucky Number) (0) | 2022.12.12 |
[프로그래머스] 모음 사전 (0) | 2022.12.10 |
[프로그래머스] 주식가격 - 자바스크립트, 파이썬 (0) | 2022.12.09 |
[프로그래머스] 프린터 (0) | 2022.11.22 |