문제링크
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--
같은 이유로 간결하게 작성할 수 있어.
이 세 가지는 가독성 개선일 뿐, 성능 차이는 사실상 없어.
후기
쉬운듯 어려운듯 쉬운문제였다.
'코테 > lvl2' 카테고리의 다른 글
| 프로그래머스 괄호 변환(lvl2) 풀어보기 (0) | 2026.10.19 |
|---|---|
| 프로그래머스 의상(lvl2)풀어보기 (0) | 2026.10.16 |
| 프로그래머스 스킬트리(lvl2) 풀어보기 (0) | 2026.10.16 |
| 프로그래머스 수식 최대화(lvl2) 풀어보기 (0) | 2026.10.16 |
| 프로그래머스 삼각 달팽이(lvl2) 풀어보기 (0) | 2026.10.12 |