1이 될 때 까지 어떠한 수 N,K가 입력이 들어오면 두가지의 연산을 통해 N의 값을 1로 만드는 과정 중 연산의 최소 횟수를 구하는 문제. 단, 두번째 연산은 N이 K로 나누어 떨어 질때만 선택할 수 있다. 1. N에서 1을 뺀다. 2. N을 K 로 나눈다. 나의 코드 n,k=map(int,input().split()) cnt =0 while n!=1: if n%k==0: n=n//k cnt+=1 else: n=n-1 cnt+=1 print(cnt) '최소 회수' 라는 단어에서 그리디 알고리즘을 떠올렸다. 또한 두가지 연상 종류 중 뺴기 보단 나누기가 횟수를 줄이는데 효과가 좋다. 우선 2번 연산이 가능한지(n이k로 나누어 지는지) 확인 후 가능하면 2번을 하고 2번 연산이 안되면 1번 연산을 한다. ..