Codility Java BinaryGap

업데이트:

문제

Link

코드

// you can also use imports, for example:
// import java.util.*;

// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");

class Solution {
  public int solution(int N) {
    char[] binary = Integer.toBinaryString(N).toCharArray();
    int max = 0;
    int counter = 0;
    // Loop and check max length.
    for (int idx = 1; idx < binary.length; idx++) {
      if(binary[idx] == '0') {
        counter++;
      } else {
        if (counter > max) {
          max = counter;
        }
        // Initializing counter.
        counter = 0;
      }
    }
    return max;
  }
}

결과

Link

설명

  1. 주어진 숫자를 Binary로 변환한다.
  2. Binary를 순차 확인하며, 1사이의 0의 개수를 센다.
    • Binary의 시작은 항상 1부터로, Index 1부터 탐색한다.
    • 1이 나타날 경우 max에 임시 저장하고, counter를 초기화하여 다시 개수를 센다.
  3. 문제의 결과를 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기