알고리즘 공부 기록
이코테 그리디 : 1이 될 때까지
hyeonha
2024. 3. 22. 02:50
배운점
while문은 조건을 만족하는 동안 계속 실행된다.
# 1번째 방법
while n>1:
if n%k==0:
count +=1
n = n //k
else:
n -= 1
count +=1
# 2번째 방법
while n>=k:
while n %k != 0:
n -=1
count +=1
n //=k
count +=1
# 3번째 방법
while n>1:
n-=1
count+=1
while True:
target = (n//k) * k # k로 나누어떨어지는 수를 구해줌
result += (n-target) # 1을 빼야할 횟수를 result에 더해줌
n = target # target을 n 값에 넣어줌
if n<k:
break
result +=1 # n이 k보다 크다면 계속 나누는 연산을 수행할 것이다 result에 1씩 더해준다.
n //= k # k로 n을 나누어준다.
result += (n-1)
print(result)
728x90