[JAVA/프로그래머스] 연습문제: 다음 큰 숫자

👀 문제

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

👊 도전

1. 설계

  1. n+1부터 2진수로 변환했을 때 1의 개수를 센다.
  2. n을 이진수로 변환한 값의 1의 개수와 같은지 확인한다.

2. 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.*;
/**
 *
 * @author HEESOO
 *
 */
class Solution {
    public int solution(int n) {
        int answer = n+1;
        int oneCnt=Integer.bitCount(n);
        while(true){
            if(Integer.bitCount(answer)==oneCnt) break;
            else answer++;
        }
        return answer;
    }
}

3. 결과

실행결과 🤟 성공 🤟

4. 설명

  1. n+1부터 조건에 맞는지 체크한다
    • n+1부터 하나씩 늘려가면서 조건에 맞는 숫자를 리턴한다.
    • Integer.bitCount(n)은 숫자 n을 2진수로 변환했을 때 1의 개수를 리턴해주는 메소드이다.

👏 해결 완료!