https://school.programmers.co.kr/learn/courses/30/lessons/12980
public class Solution {
public int solution(int n) {
int ans = 0;
while(n>1){
if(n%2==0) n/=2 ;
else {
n = (n-1)/2;
ans ++;
}
}
return ans +1;
}
}
public class Solution {
public int solution(int n) {
int sub = 1;
int ans = 0;
while(n != 0){
if(n % 2 == 1){
n -= sub;
ans += 1;
}
n /= 2;
}
return ans;
}
}
public class Solution {
public int solution(int n) {
int ans = 0;
while(n>0){
if(n%2!=0) {
n --;
ans ++;
}
n /=2;
}
return ans;
}
}
문제는 길었는데 나눗셈 검산식 쓰는 느낌으로 푸는게 제일 빠른 풀이었던 것 같다.
수학적으로 생각하는게 빠른 경우가 많은데 수학적 접근 + 적재적소에 쓸 수 있는 프로그래밍 능력이 필요하구나를 맛본 문제였던 것 같다.
글 잘 봤습니다.