Algorithm/BackJoon
[Swift] 백준 11047 - 동전 0
오늘의하늘은
2022. 1. 24. 22:36
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이 될때 까지 진행합니다.
반응형