본문 바로가기
Algorithm/프로그래머스

[프로그래머스]Summer/Winter Coding(~2018) : 점프와 순간 이동 (level 2)(c++)

by HBGB 2020. 5. 23.

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

 

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

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

programmers.co.kr

 

 

#include <iostream>
#include <vector>

using namespace std;

int solution(int n)
{
    int cnt = 0;
    
    // n에서부터 0까지 가는 방법
    while (n > 0)
    {
        // n이 홀수면 1칸 점프
        if (n % 2)
        {
            ++cnt;
        }
        /*
           n의 홀짝 여부와 상관없이 무조건 n은 2로 나눈다.
           다음번 n이 홀수일 때만 중요하기 때문.
        */
        n /= 2;
    }

    return cnt;
}

 

문제가 길어서 백트랙킹이나 DP쯤 되나했더니...

효율성 테스트에서 fail떠서 깨달았다.

댓글