코테/lvl2

프로그래머스 점프와 순간 이동(lvl2) 풀어보기

디비드킴 2026. 10. 16. 15:24

문제링크

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


문제 핵심

너무길다


알고리즘

1.짝수라면 계속 /2 

2.홀수라면 -1 해서 짝수로 만들기

(이때만 +1 해주기)


코드

 

public static  int solution(int n) {
        int ans = 0;
        while (n!=0) {
            if(n%2==0){
                n=n/2;
            }else{
                ans+=1;
                n-=1;
            }
        }
        System.out.println(ans);
        return ans;
    }

 


결과


gpt피드백

1. 알고리즘 평가

이번 코드는 알고리즘과 시간 복잡도 모두 훌륭해. 직접 역방향으로 접근해서 최적해를 찾았고, 불필요한 탐색도 없어.

개선점

알고리즘 자체는 개선할 필요가 없어.

2. 코드 평가

개선점

① ans += 1 → ans++

단순히 1 증가시키는 연산이므로 더 간결하게 작성할 수 있어.

② n = n / 2 → n /= 2

복합 대입 연산자를 사용하면 코드가 간결해져.

③ n -= 1 → n--

같은 이유로 간결하게 작성할 수 있어.

이 세 가지는 가독성 개선일 뿐, 성능 차이는 사실상 없어.

 
 
 
 

후기

쉬운듯 어려운듯 쉬운문제였다.