본문 바로가기
프로그래머스

[프로그래머스] 귤 고르기 - Python

by whereisco 2022. 12. 28.

문제

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