프로그래머스 - 점프와 순간 이동

김서영·2024년 1월 29일
0

알고리즘

목록 보기
17/25

📃 문제

💟 코드

def solution(n):
    ans = 0
    while n != 0:
        if n == 1:
            n = 0
            ans += 1
        if n % 2 == 1:
            n = n // 2
            ans += 1
        else:
            n = n // 2
    return ans

✨ 코드 풀이

이 문제 또한 뒤에서부터 풀어가는 방식을 생각해 보았다!!

  1. n을 2로 나누었을 때 나누어 떨어지면 순간이동이 가능하므로 나눠주기만 하고!

  2. 나누어 떨어지지 않는 경우에는 1칸 점프해야 하는 것이기 때문에 ans에 1을 더해주고, n을 2로 나눈 몫으로 바꿔주기!!

  3. 마지막에 n이 1이 되면 점프를 한번 해야하기 때문에 ans에 1을 더해주고, n을 0으로 바꿔주기!

profile
개발과 지식의 성장을 즐기는 개발자

0개의 댓글