1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
fun main(){
var (N,K) = readLine()!!.split(" ").map{it.toInt()}
var count = 0
while(true) {
if (N % K == 0) {
N /= K
count ++z
} else {
N -= 1
count ++
}
if(N==1)
break
}
println(count)
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
fun main() {
var (N, K) = readLine()!!.split(" ").map { it.toInt() }
var count = 0
var target = 0
while (true) {
target = (N/K)*K
count += (N-target)
N = target
if(N==0)
break
else{
N /= K
count++
}
}
println(count-1)
}
|
cs |
처음코드를 시간복잡도를 고려하여 개선함.
'알고리즘 공부 > 미분류' 카테고리의 다른 글
백준 2828번 with Kotlin (0) | 2021.07.07 |
---|---|
백준 2839번 with Kotlin (0) | 2021.07.07 |
백준 4344번 with Kotlin #5 100 70 60 30 20 10 꼴의 입력 # drop #avg # sum #소수점 몇째자리까지 출력 (0) | 2021.07.06 |
백준 2581번 #소수 (0) | 2021.07.06 |
백준 2609번 #최소공배수 #최대공약수 #입력 (0) | 2021.07.06 |