어제의 나보다 성장한 오늘의 나

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

알고리즘/프로그래머스(Programmers)

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

NineOne 2020. 12. 26. 23:57

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

 

코딩테스트 연습 - 올바른 괄호

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호

programmers.co.kr

문제풀이

조금 쉬웠던 문제였다. 처음에 n의 1의 갯수를 구하고 while문으로 n을 증가시켜주면서 1의 갯수만 맞는 것을 찾는 문제라서 라이브러리만 잘 쓰면 깔끔하게 짤 수 있었던거 같다.

풀고나서 더 짧게 푼 사람이 있는 싶어서 프로그래머스 다른 사람 풀이를 봤는데 Integer.bitCount()라는 편리한 함수를 봤다. 정말로 다른 사람의 코드를 리뷰 하는 건 많은 도움이 되는 것 같다.

코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        int index = n;
        int length = Integer.toBinaryString(n).replace("0", "").length();
        
        while(true){
            index++;
            int tempLength = Integer.toBinaryString(index).replace("0", "").length();
            if(length == tempLength) break;
            if(index == 1000000) break;
        }
        
        answer = index;
        return answer;
    }
}
Comments