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

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/138476

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

문제 풀이

먼저 특정 크기의 귤의 갯수를 구하는게 먼저라 생각해 이것을 먼저 사전 처리하고,

서로 다른 종류의 수를 최소화 해야하니 가장 많은 갯수의 귤부터 먼저 다 넣어가면서 차례대로 처리한다면 쉽게 풀 수 있겠다 생각이 들었다.

해결 방법

func solution(_ k:Int, _ tangerine:[Int]) -> Int {
    var k = k
    var answer = 0
    var dict = [Int:Int]()
    for item in tangerine { // 크기별 귤 갯수 카운트
        dict[item, default: 0] += 1 
    }

	// 귤 갯수를 내림차순으로 정렬 후 박스에 넣기
    for item in dict.sorted{$0.value > $1.value} {
        k -= item.value
        answer += 1       
        if k <= 0 { break }
    }
    
    return answer
}

귤 갯수가 많은 것 부터 넣어야지만 종류를 최소화 할 수 있다.

이 문제는 쉽게 해결했다.

 

728x90