본문 바로가기
알고리즘-python/Programmers 문제

[프로그래머스/2단계/파이썬(Python3)] 점프와 순간이동

by 빅데이터1020 2021. 7. 14.
SMALL

 

문제출처

 

코딩테스트 연습 - 점프와 순간 이동

OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈

programmers.co.kr

 

풀이코드

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

    return answer

 

0에서 n 위치까지 갈 때 얼만큼 건전지 소비를 하는 것인가를 물어보는 문제입니다.

문제를 뒤집어서 n 위치에서 0에 도착할 때까지 건전지를 얼마나 소비할까 로 바꾸면 문제풀이가 좀 더 쉬워집니다.

 

현재 위치(n)가 짝수라면 나누기 2 를 해서 순간이동을 하면 됩니다.

 

현재 위치(n)가 홀수라면 현재 위치에서 한 칸 이동합니다. (-1)

건전지를 사용했기 때문에 건전지소비는 (+1)을 더해줍니다.

 

만약 현재 위치가 1이라면

한 칸 이동한 뒤(-1) 건전지 소비량에 1을 더한 뒤

반복문을 빠져나오도록 코드를 작성하면 됩니다.

LIST