728x90
반응형
문제
분석
- 이진 수에서 1로 둘어쌓인 0 의 최대 길이를 찾는 거다.
- 10001001 -> 4 값이 나와야 한다.
- 1001000001 -> 5 값이 나와야 한다.
- 첫번째 1 을 찾고 두번째 1을 찾을때 계산된 값과 맥스값을 비교하면 끝
구현
// 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");
// 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 String convertBinary(int n) {
return Integer.toBinaryString(n);
}
public int countMaxGap(String n) {
boolean isFirstOne = false;
boolean isSecondOne = false;
int maxGap = 0;
int tmpGap = 0;
for (int i = 0; i < n.length(); i++) {
if (n.charAt(i) == '1') {
if (isFirstOne) {
isSecondOne = true;
} else {
isFirstOne = true;
}
if (isFirstOne && isSecondOne) {
if (tmpGap > maxGap) {
maxGap = tmpGap;
}
isSecondOne = false;
tmpGap = 0;
}
} else {
tmpGap++;
}
}
return maxGap;
}
public int solution(int N) {
// write your code in Java SE 8
String n = convertBinary(N);
return countMaxGap(n);
}
}
결과
문제 사이트:
https://app.codility.com/programmers/lessons/1-iterations/binary_gap/
728x90
반응형
'Algorithm > Codility' 카테고리의 다른 글
[Codility] Clone Graph (0) | 2023.01.22 |
---|---|
[Codility] Product of Array Except Self (0) | 2022.12.17 |
댓글