-
[Codility - Iteration] BinaryGapAlgorithm/문자열 2021. 9. 16. 09:58728x90
https://app.codility.com/programmers/lessons/1-iterations/binary_gap/
- 주어진 수를 이진수로 변환한다. 이 과정에서 배열의 unshift를 사용 해 준다. parseInt 메서드를 통해 소숫점 이하는 버려주어야 오류가 나질 않는다. (자바스크립트의 number형 자료형은 64비트 부동소수점을 쓰기 때문)
- 그 후, 배열의 값을 하나씩 순회하면서 1을 만났을 때, 0을 만났을 때 각각 flag에 따라서 처리를 해 준다. while문 말고도 for loop을 통해서도 더 가독성있게 해결할 수 있다.
function solution(N) { let binaryValue = []; while(N>1){ binaryValue.unshift(N%2) N = parseInt(N/2) } binaryValue.unshift(1) let answer = 0 let flag = 0 let temp = 0 while(binaryValue.length !== 0){ if(binaryValue[0] === 1){ if(flag){ answer = Math.max(answer, temp) temp = 0 } flag = 1 } else { temp++ } binaryValue.shift() } return answer }
'Algorithm > 문자열' 카테고리의 다른 글
[프로그래머스] 신규 아이디 추천 (0) 2021.11.29 백준 5430 AC (0) 2021.11.22 [프로그래머스] 문자열 압축 (0) 2021.09.20