관리 메뉴

막내의 막무가내 프로그래밍 & 일상

[알고리즘] 프로그래머스 다음 큰 숫자 -연습문제, 문자열- 본문

알고리즘/문자열, 정렬

[알고리즘] 프로그래머스 다음 큰 숫자 -연습문제, 문자열-

막무가내막내 2020. 4. 22. 22:55
728x90

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

프로그래머스 레벨2 연습문제 다음 큰 숫자를 풀어봤습니다. 문제가 너무 간단하길래 문자열 차례대로 1이 있는지 검사하면 효율성에서 에러가 날줄 알았는데 잘통과하네요. 이진수로 바꾸는 법을 알면 쉽게 풀 수 있는 문제였습니다.

 

 

class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        solution.solution(78);
    }
    public int solution(int n) {
        int answer = n;
        int nCount = 0; // 입력 이진수 1의 개수
        String str = Integer.toBinaryString(n);
        for (int i=0; i<str.length(); i++){
            if(str.charAt(i) == '1'){
                nCount++;
            }
        }
        while (true){
            ++answer;
            int count = 0; // 다음숫자 이진수 1의 개수
            str = Integer.toBinaryString(answer);
            for (int i=0; i<str.length(); i++){
                if(str.charAt(i) == '1'){
                    count++;
                }
            }
            if(count == nCount){
                break;
            }
        }
        return answer;
    }
}
728x90
Comments