[코딩테스트] 프로그래머스 - 점프와 순간 이동(Java)

proman·2022년 9월 17일
0

Coding-Test

목록 보기
12/21
post-thumbnail

🚁 설명

레벨: 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;
    }

}

0개의 댓글