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
3. 마무리
'Computer Science > 알고리즘' 카테고리의 다른 글
[프로그래머스 - Python] 142085 - 디펜스 게임 (0) | 2023.10.15 |
---|---|
[프로그래머스 - Python] 150368 - 이모티콘 할인행사 (0) | 2023.10.15 |
[백준 - Python] 2638 - 치즈 (0) | 2023.10.15 |
[백준 - Python] 3190 - 뱀 (0) | 2023.10.15 |
[백준 - Python] 2637 - 장난감 조립 (2) | 2023.09.20 |