# Algorithm - CodeKata #16 π

devmoonshΒ·2020λ 9μ 29μΌ
0

9/37

## 1. Question

μμ Nμ μ΄μ§λ²μΌλ‘ λ°κΏ¨μ λ, μ°μμΌλ‘ μ΄μ΄μ§λ 0 μ€μμ κ°μ₯ ν° κ°μ returnν΄ μ£ΌμΈμ.

• μ΄μ΄μ§λ 0μ 1κ³Ό 1μ¬μ΄μ μλ κ²μ μλ―Έν©λλ€.
• 1κ³Ό 1μ¬μ΄μ μλ 0μ binary gap μ΄λΌκ³  νκ² μ΅λλ€.
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.