μμ Nμ μ΄μ§λ²μΌλ‘ λ°κΏ¨μ λ, μ°μμΌλ‘ μ΄μ΄μ§λ 0 μ€μμ κ°μ₯ ν° κ°μ returnν΄ μ£ΌμΈμ.
input: 9
output: 2
μ€λͺ
: 9μ μ΄μ§μλ 1001 μ
λλ€.
1κ³Ό 1μ¬μ΄μ μλ 0μ 2 μ΄λ―λ‘, 2λ₯Ό return
input: 529
output: 4
μ€λͺ
: 529μ μ΄μ§μλ 1000010001 μ
λλ€.
binary gapμ 4μ 3 λκ°κ° μμ΅λλ€.
μ΄ μ€ ν° κ°μ 4μ΄λ―λ‘ 4λ₯Ό return
input: 20
output: 1
μ€λͺ
: 20μ μ΄μ§μλ 10100 μ
λλ€.
1κ³Ό 1μ¬μ΄μ μλ μ°μλ 0μ μλ 1 λΏμ
λλ€.
(λ€μ μλ 0μ 1μ¬μ΄μ μλ κ²μ΄ μλλ―λ‘)
input: 15
output: 0
μ€λͺ
: 15μ μ΄μ§μλ 1111 μ
λλ€.
binary gapμ΄ μμΌλ―λ‘ 0μ return
input: 32
output: 0
μ€λͺ
: 32μ μ΄μ§μλ 100000 μ
λλ€.
binary gapμ΄ μμΌλ―λ‘ 0μ return
const solution = N => {
let binary = N.toString(2);
const binaryArr = binary.split('1');
let binaryGap = 0;
for (let i = 0; i < binaryArr.length - 1; i++) {
if (binaryArr[i].length === 0) {
continue;
} else {
binaryGap = Math.max(binaryGap, binaryArr[i].length);
}
}
return binaryGap;
}
console.log(solution(123));
Ref.
https://medium.com/akiakma/code-kata-14-binary-gap-48160e0ad6e