import Foundation
/*
동전 종류 N
가치의 합 K
K원을 만드는데 필요한 동전 개수의 최솟값은?
*/
let firstInputItems = readLine()!.components(separatedBy: " ").map { Int($0)! }
let kinds = firstInputItems[0]
var sum = firstInputItems[1]
var elements = [Int]()
elements = Range(0 ... kinds - 1)
.map { _ in Int(readLine()!)! }
.reversed()
var count = 0
elements
.forEach { element in
let value = sum / element
if value > 0 {
count += value
sum -= element * value
}
if sum == 0 {
return
}
}
print(count)
해설
입력값을 받아놓고 큰 값부터 처리하기 위해 reversed()를 사용했고 큰값으로 나눈 몫을 동전의 총 가치에서 빼주는 작업을 sum이 0이 될때 까지 진행합니다.
'Algorithm > BackJoon' 카테고리의 다른 글
[Swift] 백준 swift로 알고리즘 문제 푸는법 - readline(), Xcode Swift로 커맨드 라인 입력값 받기 (0) | 2022.01.23 |
---|---|
[Swift] 백준 11399 - ATM (0) | 2022.01.23 |
[Swift] 백준 2839 - 설탕 배달 (0) | 2022.01.23 |