알고리즘 연습/정렬
[Lv.2 / 프로그래머스 / 파이썬] 귤 고르기
김세진
2025. 5. 2. 17:28
반응형
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
- 귤의 크기별로 그 개수를 센 딕셔너리를 구성한다.
- 그리고 개수를 기준으로 내림차순 정렬한다.
- 개수가 가장 많은 종류부터 선택하여 k에서 선택한 종류의 개수를 뺀다.
- k가 남았다면 3번을, k가 0이거나 음수가 되면 목표치를 달성한 것이므로 지금까지 선택한 종류의 수를 return 한다.
def solution(k, tangerine):
# 딕셔너리 구성
d = dict()
for i in tangerine:
if i in d:
d[i] += 1
else:
d[i] = 1
# 내림차순 정렬
lst = [i[1] for i in sorted(d.items(), key=lambda x:-x[1])]
# 개수가 많은 귤 부터 상자에 담음
res = 0
for i in lst:
res += 1 # 종류 + 1
k -= i # 귤의 개수만큼 k를 감소
if k <= 0: # k를 달성했으므로 res return
return res
반응형