코린이의 소소한 공부노트

[LeetCode/Easy] 868. Binary Gap 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 868. Binary Gap

무지맘 2022. 12. 30. 01:02

1. Input

1) 양의 정수 n

 

2. Output

1) n2진수로 표현했을 때의 binary gap 중에서 가장 긴 것을 반환

- binary gap이란 두 1 사이의 거리를 말한다. 이때 두 1 사이에 다른 1이 있으면 안된다.

 

3. Constraint

1) 1 <= n <= 10^9

 

4. Example

Input: n = 22 -> Output: 2

설명: 222진수로 10110이다.

- ‘1’0‘1’10은 거리가 2이다.

- 10‘1’‘1’0은 거리가 1이다.

- ‘1’01‘1’0은 두 1 사이에 1이 있으므로 계산하지 않는다.

- 따라서 가장 긴 거리인 2를 반환한다.

 

5. Code

1) 첫 코드(2022/12/30)

String s = Integer.toBinaryString(n);
int start=0, answer=0;
for(int i=1 ; i<s.length() ; i++){
    if(s.charAt(i)=='1'){
        if(i-start>answer) answer = i-start;
        start = i;
    }
}
return answer;