JAVA/Algorithm

[프로그래머스/java] 다음 큰 숫자 (2진수의 1개수 세기 - bitCount())

nang. 2021. 1. 3. 22:58
반응형
SMALL

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

 

코딩테스트 연습 - 다음 큰 숫자

자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니

programmers.co.kr

 

  • 2진수 n보다 큰 숫자 중 1의 개수가 같은 최소 2진수 구하기
  • n을 계속 증가시키면서 1의 개수가 같아질 때 값 반환

 

  • Integer.bitCount(n);
    • 2진수의 1 개수 세주는 함수

 

class Solution {
    public int solution(int n) {
        int nBitCount = Integer.bitCount(n); // bitCount() : 1 개수를 세어주는 함수
        
        while(true) {
            n++; // n을 1씩 증가시키면서
            
            if(nBitCount == Integer.bitCount(n)) { // 1의 개수가 같아지면 최소 다음 큰 숫자이므로
                return n; // 반환
            }
        }
    }
}

 

반응형
LIST