codility - BinaryGap

Sorbet·2021년 3월 10일
0

코테

목록 보기
5/35
  • 아 진짜.. codility 코드저장이 안되서 두번풀었다..
  • 단순구현문제라 설명은 생략한다
  • 근데 재귀가 코드가독성이 똥인듯
class Solution {
    public static void main(String[] args) {
        Solution s = new Solution();
        System.out.println( s.solution(9) + "is equal 2?");
    }

    static boolean is_started = false;
    static char[] arr;
    static int maxi = 0;

    public int solution(int N) {
        String s = Integer.toBinaryString(N);
        arr = s.toCharArray();
        run(arr.length,0,0);
        return maxi;
    }

    void run(int end, int cur, int len) {
        if(cur>=end) {
            return;
        }
        else {
            if(arr[cur] == '0') {
                if(is_started) {
                    run(end,cur+1,len+1);
                }
                if(!is_started) {
                    run(end,cur+1,0);
                }
            }

            if(arr[cur] == '1') {
                is_started = true;
                maxi = Math.max(maxi,len);
                run(end,cur+1,0);

            }
        }
    }

}
profile
Sorbet is good...!

0개의 댓글