반응형
해당 문제는 역순으로 생각하는 것이 키 포인트다. 마지막 예제 5000을 예시로 들면,
5000 -> 2500 -> 1250 -> 625 -> 624 -> 312 -> 156 -> 78 -> 39 -> 38 -> 19 -> 18 -> 9 -> 8 -> 4 -> 2 -> 1 -> 0
굵은 숫자를 보면, 1번씩 이동해야되는 경우가 발생한다. 즉, 나누어서 2로 떨어지지 않으면 K칸을 점프해야 된다는 것이다.
def solution(n):
ans = 1
while n != 1:
if n % 2 == 0:
n /= 2
else:
n -= 1
ans += 1
return ans
'Python > Algorithm' 카테고리의 다른 글
[Algorithm] 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) (0) | 2023.09.23 |
---|---|
[프로그래머스] 예상 대진표 - Python (0) | 2023.09.23 |
[프로그래머스] 멀리 뛰기 - Python (0) | 2023.09.16 |
[프로그래머스] 구명보트 - Python (0) | 2023.09.16 |
[프로그래머스] 둘만의 암호 - Python (2) | 2023.09.08 |