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

Junyoung Park·2022년 11월 27일
0

코딩테스트

목록 보기
619/631
post-thumbnail

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
}
profile
JUST DO IT

0개의 댓글