프로그래머스 (점프와 순간이동_JAVA)

김승연·2021년 2월 24일
0

알고리즘스터디

목록 보기
6/11


문제 설명

점프할때 에너지가 줄고, 현재까지 온 거리 *2 순간이동 할때는 에너지가 줄지 않는다.
사용해야 하는 건전지의 최솟값.

문제 풀이 방법

  1. 처음에는 1칸을 먼저 간 후 2배씩 늘려 거리 계산하는 방법으로 생각해서 풀이했다.
    반복문 안에 반복문안에 반복문이 들어가면서 시간이 초과되면서 실패.
  2. 다른 사람 풀이로 힌트를 얻었다. 짝수, 홀수일 경우로 나눠서전체 거리를 2로 나누는 탑다운방식으로 풀었다. 허무할정도로 간단한 코드여서 개발에 소질이 없는것 같다는 자괴감ㅇ ...
    간단해 보이지만 굉장히 논리적인 코드라고 생각한다. 왜 난 이생각을 못하는가.. 고민이 필요하다.

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

package step1;

profile
Doing nothing cause nothing to happen.

0개의 댓글