Codility - #1 BinaryGap

고독한 키쓰차·2021년 7월 10일
0

코딩테스트

목록 보기
1/16

1번 문제 부터 시간이 꽤나 걸렸다.
우선, 문제를 바라볼때 처음부터 냅다 코딩 하는게 아니라, 문제의 핵심을 정확하게 이해하고 시작하자.

이 문제의 규칙성 핵심은, 뒤에 있는 0 은 정리를 하는것이 핵심이였다.
우리가 알고자 하는것은 결국 1과 1사이의 0의 갯수중 가장 큰것을 찾는것이기 때문에 가장 뒤에 있는 0 은 찌꺼기 라는것을 알 수 있다.
(ㅠ.ㅠ 진짜 많은 뻘짓을 했다...)
코테에서 toBinaryString library 를 쓰게 해줄지 모르겠지만, 저건 코딩 쉬우니깐...?

    public int solution(int N) {
        // write your code in Java SE 8
        String binary = Integer.toBinaryString(N);
        int start = 0;
        int last = 0;
        for(int i = 0; i <= binary.length(); i++) {
        		if(binary.charAt(i) == '1') {
        			last = i;
        		}
        }

        String newBinary = binary.substring(start, last+1);
        String[] arr = newBinary.split("1");
        int maxNum = 0;
        for(String em : arr){
            if(maxNum < em.length()){
                maxNum = em.length();
            }
        }
        return maxNum; 

    }
profile
Data Scientist or Gourmet

0개의 댓글