하루에 한 문제

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

알고리즘/프로그래머스

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

dkwjdi 2020. 12. 18. 18:01

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

 

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

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

programmers.co.kr

class Solution {
	    public int solution(int n) {
	        int num=n;
	        int oneCnt=0;
	        
	        String binary=Integer.toBinaryString(num);
	        for(int i=0; i<binary.length(); i++) {
	        	char ch=binary.charAt(i);
	        	if(ch=='1') oneCnt++;
	        }
	        
	        while(true) {
	             binary=Integer.toBinaryString(++num);
	             int cnt=0;
	             for(int i=0; i<binary.length(); i++) {
	 	        	char ch=binary.charAt(i);
	 	        	if(ch=='1') cnt++;
	 	        }
	        	if(cnt==oneCnt) break;
	        	
	        }
	        
	        return num;
	        
	    }
	}

소요시간 : 8분

 

입력받은 n을 toBinaryString을 통해서 이진수로 바꿔줍니다.

 

그리고 1갯수를 체크해줍니다. 

 

그리고 n을 ++ 하면서 toBinaryString를 통해 이진수로 바꾸고 역시 1이 몇개나오는지 확인해주면 끝입니다!

 

Comments