Swift | programmers/Lv1.
[Swift] Lv1. 예산
iOSDEv
2024. 3. 19. 08:54
예산
문제

나의 풀이
import Foundation
func solution(_ d:[Int], _ budget:Int) -> Int {
var remains = budget
var count = 0
for x in d.sorted() {
remains -= x
if remains < 0
{
return count
}
count += 1
}
return count
}
sorted를 사용하여 정렬하고
가지고 있는 금액에서 물품의 금액을 빼준다
만약 0이하이면 count반환
아니라면 count += 1
다른 사람 풀이
import Foundation
func solution(_ d:[Int], _ budget:Int) -> Int {
var budget = budget
return d.sorted().filter{
budget = budget - $0
return budget >= 0
}.count
}
고차함수를 이용하여 깔끔한 코드를 볼 수 있었다
import Foundation
func solution(_ d:[Int], _ budget:Int) -> Int {
var sum = 0
for i in d.sorted().enumerated() {
sum = sum + i.element
if sum > budget {
return i.offset
}
}
return d.count
}
offset과 count를 사용한다 정말 신박했던 답변