내 풀이
n, k = map(int, input().split())
count = 0
while (n != 1):
if (n % k == 0):
n = n / k
count += 1
else:
n -= 1
count += 1
continue
print(count)
정답
느낀점
오답노트 :
N이 커질수록 시간 초과가 발생할 수 있기 때문에 일일히 1을 빼는건 비효율적이라는 것을 알게 되었다.
N이 100억 이상의 큰 수가 되는 경우에도 효율적으로 실행하기 위해서 N이 K의 배수가 되도록 한번에 빼는 방식을 사용해야 한다.
정답 맞춰서 푸는 것도 중요하지만, 효율을 생각해서 적절한 알고리즘을 사용하고 설계하는 사고를 기르는게 더 중요하다고 느끼게 되었다.
'코테 공부 > Computer Algorithm' 카테고리의 다른 글
[2024 알고리즘 특강] 문자열/회문 (파이썬) (0) | 2024.05.16 |
---|---|
[이코테] 두 배열의 원소 교체 (파이썬) (0) | 2024.04.05 |
[이코테] 정렬 알고리즘 코드 정리 (파이썬) (0) | 2024.04.05 |
[이코테] 구현 - 상하좌우 (파이썬) (0) | 2024.03.28 |
[이코테] 그리디 알고리즘 - 곱하기 혹은 더하기 (파이썬) (0) | 2024.03.28 |