점프와 순간 이동(Lv2)

108번뇌·2021년 3월 3일
0

#include <iostream>
using namespace std;

int solution(int n)
{
    int ans = 0;
    
    while(n>0)
    {
        if(n%2==0)
        {
            n/=2;
        }
        else
        {
            n--;
            ans++;
        }
    }
    return ans;
}

이 문제는 탐욕 알고리즘이다.
최상의 결과를 얻기 위해서는 가능한 순간이동 한 부분이 많아야 하므로 될수 있는한
순간이동을 하고(나누기 2 하는 행위)

이게 안됬을 경우 1칸 전진한다.
지금까지 이동한 부분으로부터 절대 거리를 이동하므로 이런식이 가능하다.

profile
내일 아침 눈을 떳을 때, '기대되는 오늘 하루를 만들기 위해' 나는 오늘도 생각하고 고민한다.

0개의 댓글

관련 채용 정보