[JavaScript][Programmers] 점프와 순간이동

조준형·2021년 8월 13일
0

Algorithm

목록 보기
66/142
post-thumbnail

🔎 점프와 순간이동

❓ 문제링크

https://programmers.co.kr/learn/courses/30/lessons/12980

📄 제출 코드

// 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치

function solution(n)
{
    var ans = 0;
    while (n!=0) {
        if (n % 2 == 0) n /= 2;
        else {
            n--;
            ans++;
        }
    }

    return ans;
}
let n = 5;
console.log(solution(n));

예전에 백준에서 비슷한걸 풀어본적이 있어 쉽게 푼거 같다.
n이 짝수면 n/2를 하고, 홀수면 1을 빼주고, ans+1을 한다.
n이 0이 될때까지 반복해서 답을 구하면 된다.

문제에서 순간이동은 소모값이 없고, 점프의 경우에만 소모한다고 되있다.
N = 5일 때
먼저 홀수니까 n = 4; ans +1(한칸이동);
n=4 >> n=2; ans=1;(순간이동)
n=2 >> n=1; ans=1;(순간이동)
n=1 >> n=0; ans=2;(한칸이동)
n=0 >> 종료.
이렇게 된다.

profile
깃허브 : github.com/JuneHyung

0개의 댓글