programming/TIL

[Codility]Iterations_BinaryGap

mimyo_ 2020. 8. 26. 21:18

 이직준비의 일환으로 알고리즘 연습 시작

소감
 1. 2일간 고민하는 자신을 보면서 깜짝 놀랐다... 열심히 해야지
 2. 그동안 코딩 습관이 자꾸 나온다. unsigned가 아니지만 숫자에 U를 붙이기 등...

 

그림1. 결과

더보기

나의 해결책

int solution(int N) {
    int buf = 0;
    int binryGab = 0;
    int binryGabMax = 0;
    
    buf = N;
    
    while (buf > 0x00)
    {
        if ((buf & 0x1) != 0x0) 
        {
            buf = buf >> 1;
            while (((buf & 0x1) == 0x0) && (buf > 0x00)) {
            binryGab++;
            buf = buf >> 1;
            }
        } else { buf = buf >> 1; }
        
        if (binryGab >= binryGabMax) { binryGabMax = binryGab; }
        binryGab = 0;
    }
    
    return binryGabMax;
}