-
1이 될 때 까지코테 대비 python/백준 2022. 2. 18. 16:35
출처: 이코테
# 어떤수 N이 1이 될때 까지 두과정중 한가지를 반복적으로 시행 2번은 N이 K로 나누어 떨어질 때만 가능N,K= map(int,input().split())
#사실상 1빼는 것보다 나누는게 무조건 이득인 상황 따라서 그리디#카운트 초기화count =0#1일 때까지 계속 해야되므로 while문 사용while N!=1:if N%K==0:N= N//Kcount+=1else:N-=1count+=1
print(count)===================================================#답지 풀이 1n, k =map(int, input().split())result = 0
while n >=K:while n%k !=0:n-=1result +=1
n//=Kresult +=1
while n>1:n-=1result +=1
print(result)
#답지 풀이 2n,k = map(int,input().split())result = 0
while True:target = (n//k)*kresult +=(n-target)n = target
if n <k:breakresult +=(n-target)n=targetif n<k:breakresult +=1n//=k
result +=(n-1)
print(result)답지풀이도 공부하는 것이 도움이 되는 것 같다.물론 내 풀이가 더 깔끔할 때도 있지만모든 상황에 적용되지는 않으므로답지처럼 case by case로 나누는 연습도 해야겠다.얻은것1. 점점 그리디문제에 익숙해지는 것 같다2. 사고과정 => 무조건 나누는 것이 이득이다라는 것을 파악하는것