그리디 : 1이 될 때까지

주리·2022년 10월 20일
0

코테_그리디

목록 보기
4/10
post-thumbnail

변수

  1. N : 수 / K : 나눌 수
  2. count : 과정 수

로직

  1. N,K 입력받기
  2. while(true) -> N 이 1이면 탈출
  3. if N%K == 0 이면
    N = N/K
    count += 1
  4. N%K!=0 이면
    N = N-1
    count += 1

코드

  • 이렇게 풀었더니,, 뭔가 효율적이지 못한 로직이라는 생각이 들었다
    -> N==1인 경우의 코드가 중복되서
N,K = map(int,input().split())
count = 0

while 1:
  if N%K==0:
    N = N/K
    count += 1

    if(N == 1) :
      print(count)
      break
      
  else :
    N = N-1
    count += 1
    
    if(N == 1) :
      print(count)
      break

다시 푼 코드

  • 똑같이 무한루프를 돌리고
    -> N이 1인 경우와 아닌 경우 로 큰 if문을 만들어 감쌌다

'''
변수
1. N : 변수 / K : 나눌 수
2. count : 과정수

로직
1. while(true):
2. if N==1
-> break
3. else 
4. if N%%K -> N=몫, count+1
5. else -> N-1 , count+1
'''

N,K = map(int,input().split())
count=0

while True:
  if(N==1):
    print(count)
    break
  else :
    if(N%K==0):
      N = N/K
      count += 1
    else :
      N = N-1
      count +=1
profile
완벽한 글 보다, 그 과정들을 기록하는 개발자

0개의 댓글