유블로그

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

알고리즘

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

yujeong kang 2021. 1. 19. 08:55

[프로그래머스] level2 다음 큰 숫자

 

소요시간 : 5분

 

Integer의 toBinaryString을 이용하여 1의 개수를 세고,

n+1부터 1씩 증가시켜 하나하나 1의 개수를 확인하고 같으면 return 한다.

쉬운 문제다.

 

그런데 Integer의 bitCount() 메소드를 쓰면 아래의 귀찮은 과정없이 바로 해당 숫자의 1 개수가 나온다.....!!

class Solution {
    public int solution(int n) {
    	Integer N = n;
    	String s = N.toBinaryString(N);
    	int countOne = 0;
    	for (int i = 0; i < s.length(); i++) {
			if(s.charAt(i) == '1') countOne++;
		}
    	
    	Integer num = N+1;
    	int count = 0;
    	while(true) {
    		count = 0;
    		s = N.toBinaryString(num);
    		for (int i = 0; i < s.length(); i++) {
    			if(s.charAt(i) == '1') count++;
    		}
    		if(count == countOne) break;
    		num++;
    	}
    	
        return num;
    }
}

'알고리즘' 카테고리의 다른 글

[프로그래머스] 숫자의 표현  (0) 2021.01.20
[프로그래머스] 땅따먹기  (0) 2021.01.19
[프로그래머스] 튜플  (0) 2021.01.18
[프로그래머스] 괄호변환  (0) 2021.01.18
[프로그래머스] 문자열 압축  (0) 2021.01.18