하루에 한 문제

[프로그래머스-lv2 Summer/Winter Coding(~2018)]점프와 순간이동 -Java 본문

알고리즘/프로그래머스 lv2 다시풀기

[프로그래머스-lv2 Summer/Winter Coding(~2018)]점프와 순간이동 -Java

dkwjdi 2021. 3. 23. 21:25

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

 

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

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

programmers.co.kr

import java.util.*;

public class Solution {
    public int solution(int n) {
        int ans = 0;

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

소요시간 : 5분

 

 

뒤에서부터 생각하면 쉽습니다

 

건전지를 최대한 사용하지 않아야 하기 때문에 순간이동보다는 자신이 온거리 x 2를 하다가 안될 때 한 칸 움직여 주는 것이 좋습니다.

 

만약 N이 6이라면

6/2 = 3

3-1 = 2  (건전지 1사용)

2/2 = 1  

1-0 = 0 (건전지 1 사용)

 

총 건전지 2 사용 

 

처럼 풀면 금방 풀립니다

 

끝~

Comments