seunghyun Note

[프로그래머스] - 다음 큰 숫자 with JAVA 본문

코딩테스트/백준

[프로그래머스] - 다음 큰 숫자 with JAVA

승숭슝현 2024. 1. 4. 10:38

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12911

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 풀이

 

public class Solution {
    public int solution(int n) {
    //숫자에 맞게 2진수의 갯수를 저장
        int cnt1 = countOnes(n);
        int cmp = n + 1;
        int cnt2;
        //cmp에 n을 저장하고 한자리씩 키우기
        // cnt2 에 cmp의 2진수의 1의 갯수를 저장
        while (true) {
            cnt2 = countOnes(cmp);
            if (cnt1 == cnt2) {
                break;
            }
            cmp++;
        }
        
        return cmp;
    }
    
    private int countOnes(int num) {
        int count = 0;
        String binary = Integer.toBinaryString(num);
        
        for (int i = 0; i < binary.length(); i++) {
            if (binary.charAt(i) == '1') {
                count++;
            }
        }
        
        return count;
    }
}

 

 

728x90