Algorithm - CodeKata #16 📌
4389 ワード
1. Question
正数Nをバイナリに変更する場合は、連続する0の最大値を返します.
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
2. Answer
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
Reference
この問題について(Algorithm - CodeKata #16 📌), 我々は、より多くの情報をここで見つけました https://velog.io/@devmoonsh/JavaScript-CodeKata-16テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol