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

수경·2023년 2월 10일
0

problem solving

목록 보기
115/174

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

풀이

  1. 숫자를 2진법으로 바꿈
  2. 1의 개수 세기
  3. for문으로 1의 개수가 같은 숫자가 나올때까지 찾기

2진법 나오길래 Integer.toBinaryString() 메소드 써야지!! 하고 신나게 작성했다!

그런데 인텔리제이에서 자동으로 추천해주는 메소드 중에 Integer.bitCount() 메소드가 있길래 저건 뭘까 하고 넘어갔었는데 그게 2진법으로 숫자를 읽어서 1의 개수를 세주는 메소드였다...... 🥺... 이런 것도 있구나.... 자바 짱...

그래서 두 개 다 써봤다!


코드

  1. Integer.toBinaryString() 사용
class Solution {
    public int solution(int n) {
		String binary = Integer.toBinaryString(n);
		int num = binary.replace("0", "").length();
		int result = n + 1;

		while (true) {
			int one = Integer.toBinaryString(result).replace("0", "").length();
			if (one == num) break;
			result++;
		}
		return result;
	}
}
  1. Integer.bitCount() 사용
class Solution {
    public int solution(int n) {
        int count = Integer.bitCount(n);
		int result = n + 1;

		while (true) {
			int one = Integer.bitCount(result);
			if (one == count) break;
			result++;
		}
		return result;
    }
}
profile
어쩌다보니 tmi뿐인 블로그😎

0개의 댓글