티스토리 뷰

programmers.co.kr/learn/courses/30/lessons/12982?language=swift

나의 풀이

import Foundation

func solution(_ d:[Int], _ budget:Int) -> Int {
    
    var arr: [Int] = d.sorted()
    var budget: Int = budget
    
    while let min = arr.first, budget >= min {
        budget -= arr.removeFirst()
    }
    
    return d.count - arr.count
}

 

다른 사람의 풀이

import Foundation

func solution(_ d:[Int], _ budget:Int) -> Int {
    var budget = budget

    return d.sorted().filter{
        budget = budget - $0
        return budget >= 0
    }.count
}

배울 점

1. 필터를 사용해서 예산에서 금액을 빼고 남은 돈이 0보다 크면 남겨둠.

2. 필터를 사용하면 while보다 작업은 더 많이 할 듯..

댓글
공지사항