본문 바로가기
Self Dev./Codility

[Codility] BinaryGap 100%

by 지구 2019. 6. 2.
주 1회 회사 동기들이랑 알고리즘 스터디를 진행하고 있다.
현재 진행하고 있는 스터디는 오프라인 코딩테스트로도 많이 활용하고 있는 Codility.
각자 풀고 자기가 푼 소스를 리뷰하는 형식인데, 뜻 깊고 보람도 있고 참으로 도움이 많이 된다 :)
뛰어나진 않지만 각 단원 별로 100% 만들기 위해 노력 중이고, 기록 및 공유하기 위해 글을 작성한다.

바로가기   >Codility   >BinaryGap

 

문제 해석 : 입력받은 정수 N을 2진수로 바뀐 뒤, 1 과 1 사이에 존재하는 0 의 최대 개수를 리턴하는 문제

문제 풀이 : 정수 N 을 2진수로 변환한 뒤 한 글자 씩 비교하여 0이면 zeroCnt 를 계속 더하다가, 1을 만나면 Array 에 zeroCnt 를 넣어준다.그렇게 Array 에 누적된 값 중 가장 큰 값을 리턴.

 

import java.util.*;

class Solution {
    public int solution(int N) {
        // 2진수 값
        String binary = Integer.toBinaryString(N);
        
        ArrayList<Integer> result = new ArrayList<Integer>();
        int zeroCnt = 0;
        for (String word : binary.split("")) {
            if (word.equals("0")) {
                zeroCnt++;
            } else {
                result.add(zeroCnt);
                zeroCnt = 0;
            }
        }
        
        return Collections.max(result);
    }
}

 

 

반응형

'Self Dev. > Codility' 카테고리의 다른 글

[Codility] TapeEquilibrium 100%  (0) 2019.09.08
[Codility] PermMissingElem 100%  (0) 2019.09.08
[Codility] FrogJmp 100%  (0) 2019.09.08
[Codility] CyclicRotation 100%  (0) 2019.09.07
[Codility] OddOccurrencesInArray 100%  (0) 2019.09.07

댓글