레벨: 2
언어: 자바(Java)
레벨 2중에서도 쉬운문제 속하는 문제라고 생각합니다..
사실상 어떤식으로 풀어낼까 생각하다가 예시를 보면서 느낀게 해당문제의 2로 나눈 나머지들의 합이라는 걸 알게됬습니다..
그래서 루프돌리면서 나머지를 더하는 코드를 짜다가..
이 문제가 결국엔 2진수로 풀어내는 방법인데 비트를 사용하면 나머지가 1인 남는경우에는 2진수가 1인 경우를 카운팅하면되지 않을까라는 방식에 대해 생각하게 되었고, 최종적으로 카운팅수를 방법을 사용하였습니다
public class Solution {
public int solution(int n) {
return Integer.bitCount(n);
}
}
public class Solution {
public int solution(int n) {
int result = 0;
while(n > 0) {
result += n % 2;
n /= 2;
}
return result;
}
}
import java.util.*;
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;
}
}