[Programmers/JAVA] 다음 큰 숫자

2022. 12. 2. 01:22자바/프로그래머스

 

내 코드

 

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        String n_bi=Integer.toBinaryString(n);
        int len=n_bi.length()-n_bi.replace("1", "").length();
        while(true) {
            n++;
            n_bi=Integer.toBinaryString(n);
            int len_2=n_bi.length()-n_bi.replace("1", "").length();
            if(len==len_2) {
                break;
            }
        }
        answer=n;
        
        return answer;
    }
}

 

느낀점

 

내 코드는... 노가다??

사실 코드 만들면서 효율성에서 타임오버 뜰줄알았다....

무식하게 작업했다고는 생각했는데...

다른 사람의 풀이를 보니까 경이 그 자체였다. 어떻게 저런 생각을 할 수가 있지??

난 그정도의 풀이는 수학자라서 가능하다고 본다. 나의 뇌에서는 나올 수 없는 풀이이다. 여차저차 어떻게 돌아가는 코드인지는 이해했지만 저 풀이가 왜 맞는지는 이해하지 못했기에 나는 그 코드를 쓸 수 없다..

 

이번에는 [이진변환반복하기] 문제에서 다른 사람들의 코드로부터 배웠던 방법을 한번 써먹어봤다.

이렇게 나는 한발자국씩 발전한다.