프로그래머스(Java) - 다음 큰 숫자

문제 링크

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

문제 풀이

아래 코드를 통해서 정수를 이진수로 표현이 가능한것을 알았다.

String binaryString = Integer.toBinaryString(n);

그렇기에 그 이진수에서 0을 모두 제거하면 1만 남을 것이고 그것의 길이가 1의 개수이다.

binaryString = binaryString.replace("0","");
int one_cnt=binaryString.length();

입력받은 수와 1의 개수가 같은 다음 정수를 찾기위해서 while문을 통해서 구했다.


코드

import java.util.*;

class Solution {
    public int solution(int n) {
        int answer =n;
        
        String binaryString = Integer.toBinaryString(n);
        
        binaryString = binaryString.replace("0","");
        int one_cnt=binaryString.length();
        
        int cnt =0;
        while(cnt!=one_cnt){
            
            String binaryS = Integer.toBinaryString(++answer);
            binaryS = binaryS.replace("0","");
            cnt=binaryS.length();
        }
        
        return answer;
    }
}

좋은 웹페이지 즐겨찾기