-
[Javascript] Codility Lesson1 - BinaryGap알고리즘, 자료구조/Codility 2022. 7. 19. 02:22
문제: https://app.codility.com/programmers/lessons/1-iterations/binary_gap/
문제 요약
- 양의 정수인 N을 이진수로 나타냈을 때, 양 끝이 1로 이루어진 연속되는 0을 BinaryGap이라 한다.
- 가장 긴 BinaryGap의 길이를 구하되, BinaryGap이 없으면 0을 리턴한다.
- 10001001의 가장 긴 BinaryGap은 3이며, 100000인 경우 BinaryGap이 없기 때문에 0을 반환한다.
- 정수 N의 범위는 1 ~ 2,147,483,647이다.
풀이
function solution(N) { // 정수 N을 이진수로 변환한다 let binaryBit = (N).toString(2); let result = 0; let index = []; for(let i = 0; i < binaryBit.length; i++) { if (binaryBit[i] === '1' && index.length < 2) { index.push(i); }; if (index.length === 2) { let tmp = index[1] - index[0] - 1; result = tmp > result ? tmp : result; index.shift(); }; }; return result; }
'알고리즘, 자료구조 > Codility' 카테고리의 다른 글
[Javascript] Codility Lesson10 - CountFactors (0) 2022.08.20 [Javascript] Codility Lesson6 - Triangle (0) 2022.08.15 [Javascript] Codility Lesson9 - MaxDoubleSliceSum (0) 2022.07.11 [Javascript] Codility Lesson9 - MaxSliceSum (0) 2022.06.22 [Javascript] Codility Lesson9 - MaxProfit (0) 2022.06.21