728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12980?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
public class Solution {
public int solution(int n) {
int ans = 0;
if(n == 1) {
ans = 1;
} else {
while(n > 0) {
if(n % 2 == 0) {
n = n / 2;
} else {
ans++;
n = n / 2;
}
}
}
return ans;
}
}
회고
- 2로 나누었을때 나누어 떨어지지 않으면 왜 ans에 1을 더하면 다시 while문에 들어가서 if문을 탐색하는지 이해하면 쉬운 문제였다
- 2로 나누었을때 나누어 떨어지지 않으면 나머지는 무조건 1이다 그러니 사실상 n에서 1을 빼기 때문에 정답에 1을 더해주고 다시 while문을 돌면 된다
'Algorithm Study > Programmers (JAVA)' 카테고리의 다른 글
프로그래머스 Lv_2_구명보트_Java (0) | 2024.07.09 |
---|---|
프로그래머스 Lv3_단속카메라_Java (0) | 2024.07.07 |
프로그래머스 Lv3_최고의 집합_Java (0) | 2024.06.27 |
프로그래머스 Lv3_단어 변환_Java (0) | 2024.06.27 |
프로그래머스 Lv3_야근 지수_Java (0) | 2024.06.26 |