HEROJOON 블로그(히로블)

[Codility] [Lesson1] BinaryGap JAVA 본문

코딩테스트

[Codility] [Lesson1] BinaryGap JAVA

herojoon 2020. 11. 4. 02:15
반응형

문제

가장 큰 이진 간격의 길이를 반환하라.

ex) 10010001 일 경우 return 3;

만약 100000이라면 1과 1사이의 gap이 없으므로 return 0;

 

풀이

public int solution(int N) {
    String binaryStr = Integer.toBinaryString(N);
    char[] binaryCharArr = binaryStr.toCharArray();
    int gap = 0;
    int maxGap = 0;
    for (char c: binaryCharArr) {
        if (c == '1') {
            if (maxGap < gap) {
                maxGap = gap;
            }
            gap = 0;
        } else {
            gap += 1;
        }
    }
    return maxGap;
}

 

테스트

- 주어진 값

int N = 561892;

 

- 결과 값

3

반응형
Comments