알고리즘/프로그래머스

[프로그래머스] Lv.2 귤 고르기 문제

2024. 4. 11. 13:47

1. 배열의 요소의 갯수를 카운트 해야했다. for 문을 이용했는데, Dictionary 그룹핑을 이용하는 방법도 있다.

func solution(_ k:Int, _ tangerine:[Int]) -> Int {
    var dict = [Int: Int]()
    var sum = 0
    var ans = 0
    for i in tangerine {
        if dict[i] == nil { dict[i] = 1 }
        else { dict[i]! += 1 }
    }
    for i in dict.values.sorted(by: >) {
        sum += i
        ans += 1
        if sum >= k { break }
    }
    return ans
}
Dictionary(grouping: tangerine) { $0 }.values.sorted { $0.count > $1.count }