Computer Science/알고리즘
[프로그래머스 - Python] 138476 - 귤 고르기
바보1
2023. 10. 15. 14:47
0. 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/138476
1. 풀이 방법
- 당연하게도 서로 다른 종류의 수가 가장 적게 박스에 넣는 방법은 같은 종류를 최대한 많이 넣는 방법이다.
- 그러면 중복되는 귤의 개수를 세야 하는데, 이를 위해서 Counter를 사용했다.
- Counter를 정렬하고, 반복문을 사용해서 박스에 빈 공간이 없도록 채워주면 된다.
2. 코드
from collections import Counter
def solution(k, tangerine):
answer = 0
count = sorted(Counter(tangerine).items(), key = lambda x : x[1], reverse = True) # counter로 묶고, 정렬한다.
while k > 0: # k가 0 보다 작거나 같을 때까지 계속해서 과일을 추가한다. 당연하게도 갯수가 많은 애를 넣을수록 중복은 줄어든다.
k -= count[answer][1]
answer += 1
return answer