본문 바로가기
CS/알고리즘

[Summer/Winter Coding(~2018)] PGS lv2. 점프와 순간이동

by westpearl 2025. 9. 15.
728x90
반응형
SMALL

 

 

 

여러번 시도 후 오늘 생각을 가볍게 해봤더니 성공

- 이때 까지 시도할 땐 당연히 밑에서부터 배터리를 쌓으면서 거리에 도달하는 것만 생각했는데 다시 생각해보니 distance 0 부터 n까지 갈 필요가 없었음. 2배 밖에 못하니까 음수일땐 나누어지는수를 1빼주고, 1뺀건 무조건 이동했다는 의미 ( 배터리 소모) 하기때문에 또 나눠질때까지 2로 나눠줌

그럼결국 1 까지 도달하기때문에 1씩빼준 거리 즉 1씩 이동한 거리만 배터리 소모값을 더해주면됨

/**
- K칸 앞으로 점프 or (현재까지 온거리) *2 해당 "위치"로 순간이동
- 순간이동- 건전지X, K점프 -건전지 사용량듦
=> 순간 이동이 더 효율적임
N만큼 떨어진 장소로 이동하려함
단, 건전지 사용량을 줄이기 위해 점프로 이동하는것 최소화, 
return: 건전지 사용량의 최솟값
*/
function solution(n)
{
    let battery = 0;
    let divide = n;
    while(divide>0){
        if(divide%2===0){
            divide /=2 ;
            
        }else{
            divide -=1;
            battery+=1;
        }
    }
    return battery;
}

 

 

여러번 해도 안되더니 갑자기되네,,

LIST