1. 문제 설명
귤 고르기
2. 문제 분석
- 무게 별 귤의 개수를 딕셔너리를 통해 카운트한 뒤 내림차순으로 정렬하자. 즉 무게 별로 개수가 많은 순서대로 골라야 최대한 고르는 귤의 종류가 최소가 될 수 있다.
enumberated
를 통해 현 시점의 귤의 개수를 카운트했다.
3. 나의 풀이
import Foundation
func solution(_ k:Int, _ tangerine:[Int]) -> Int {
var numberDict = [Int:Int]()
for t in tangerine {
let number = numberDict[t] ?? 0
numberDict[t] = number + 1
}
let sortedNumbers = numberDict.values.sorted(by: >)
var number = 0
var answer = 0
for item in sortedNumbers.enumerated() {
let index = item.offset
let element = item.element
if number + element >= k {
answer = index + 1
break
}
number += element
}
return answer
}