알고리즘 문제 풀이/이코테
[이코테] CH03 그리디 실전문제 1이 될 때 까지
파란색 가운
2023. 11. 15. 15:44
from collections import deque
sys.setrecursionlimit(100000000)
import heapq
INF = 1e9
N,K = map(int,sys.stdin.readline().split())
count = 0
while True:
if N == 1:
break
if N%K == 0:
N = N / K
count +=1
else:
N -=1
count +=1
print(count)
일단 이게 내 코드이다
K가 2보다 크거나 같다는 것을 보고
K로 나눠줄 수 있으면 무조건 나눠주는 것이 이득이겠구나를 잡아내고
간단하게 풀었다
테스트 케이스도 다 맞는 건 확인했지만
반례가 있다면 환영입니다 !
이건 답안입니다
import sys
# sys.stdin.readline()
from collections import deque
sys.setrecursionlimit(100000000)
import heapq
INF = 1e9
N,K = map(int,sys.stdin.readline().split())
sum = 0
while N>=K:
while N%K!=0:
N-=1
sum +=1
N //=K
sum +=1
while N>1:
N-=1
sum +=1
print(sum)