728x90
SMALL
https://www.acmicpc.net/problem/1463
fun main() = with(Scanner(System.`in`)) {
val size = nextInt()
val count = Array<Int>(size + 1) { 0 }
count[0] = 0
count[1] = 1
if (size == 1) {
return println(0)
}
count[2] = 1
if (size == 2) {
return println(count[size])
}
count[3] = 1
if (size == 3) {
return println(count[size])
}
for (i in 4 until count.size) {
count[i] = count[i - 1] + 1
if (i % 6 == 0) {
count[i] = min(count[i],count[i / 3] + 1)
count[i] = min(count[i],count[i / 2] + 1)
} else if (i % 3 == 0) {
count[i] = min(count[i],count[i / 3] + 1)
} else if (i % 2 == 0) {
count[i] = min(count[i],count[i / 2] + 1)
} else {
count[i] = min(count[i],count[i - 1] + 1)
}
}
println(count[size])
}
728x90
LIST
'IT > 알고리즘' 카테고리의 다른 글
[백준] 카드구매하기 (0) | 2024.11.21 |
---|---|
[백준] 1,2,3 더하기 (0) | 2024.11.21 |
[백준] 2xn 타일링 (0) | 2024.11.18 |
[백준] 2xn 타일링2 (0) | 2024.11.18 |
[백준] 차이를 최대로 (0) | 2024.11.14 |