매일 Algorithm

신재원·2023년 3월 10일
0

Algorithm

목록 보기
61/243

프로그래머스 (LEVEL 2)

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        for(int i = 1; i <= n; i++){
            int sum = 0;
            for(int j =i; j <=n; j++){
                sum +=j;
                
                if(sum == n){
                    answer++;
                    break;
                }
                // sum 변수가 n보다 크게되면은 반복문을 끝까지 돌지 않아도된다.
                else if(sum > n){
                    break;
                }
            }
        }
        return answer;
    }
}

프로그래머스 (LEVEL 2)

class Solution {
    public int solution(int n) {
        int answer = 0;
        // Integer.toBinaryString(n) = 2진수로 변환하는 메서드
        // Integer.bitCount = 2진수로 변환후 포함된 1을 카운트 해준다
        int count = Integer.bitCount(n);


        while(true){
            // n의 값을 증가시켜준다.
            n++;
            int result = Integer.bitCount(n);

            // 2진수의 1의 갯수가 동일할시 break;
            if(count == result){
                answer = n;
                break;
            }
        }
        return answer;
    }
}

0개의 댓글