import Foundation
func solution(_ x: Int, _ y: Int, _ n: Int) -> Int {
var arr = Array(repeating: Int.max, count: y + 1)
arr[x] = 0
for i in x...y where arr[i] != Int.max {
var num = i
if num + n <= y {
arr[num + n] = min(arr[num] + 1, arr[num + n])
}
if num * 2 <= y {
arr[num * 2] = min(arr[num] + 1, arr[num * 2])
}
if num * 3 <= y {
arr[num * 3] = min(arr[num] + 1, arr[num * 3])
}
}
return arr[y] == Int.max ? -1 : arr[y]
}
'프로그래머스 > Lv.2' 카테고리의 다른 글
| [Swift] 연속된 부분 수열의 합 (0) | 2023.04.30 |
|---|---|
| [Swift] 롤케이크 자르기 (0) | 2023.04.29 |
| [Swift] 소수 찾기 (0) | 2023.04.29 |
| [Swift] 다리를 지나는 트럭 (0) | 2023.04.29 |
| [Swift] 2개 이하로 다른 비트 (0) | 2023.04.29 |