Description:
Write a function that takes an integer as input, and returns the number of bits that are equal to one in the binary representation of that number. You can guarantee that input is non-negative.
Example: The binary representation of 1234 is 10011010010, so the function should return 5 in this case
var countBits = function(n) {
let sum = 0;
n.toString(2).split('').map(str => {
sum += Number(str);
});
return sum;
};
어제 풀었던 문제랑 비슷한 유형이라서 어제 풀었던 코드를 활용해서 문제를 풀어보았다.
주어진 숫자 n을 toString(2)을 사용해서 2진수로 변경하고
split('')를 사용해서 숫자를 하나씩 쪼갠 배열을 만든 다음에
map을 사용해서 각 요소들을 서로 더해주었고
더해준 값을 sum에 저장하도록 한 다음에 sum을 리턴하였다.
다른 사람이 푼 코드를 보니까 훨씬 간단하게 했더라,,
countBits = n => n.toString(2).split('0').join('').length;
2진수는 0이랑 1밖에 없으니까 0을 제거한 배열의 길이를 구했다.
'코테연습' 카테고리의 다른 글
26.Find The Parity Outlier (0) | 2022.04.02 |
---|---|
25.Create Phone Number (0) | 2022.04.02 |
23.Who likes it? (0) | 2022.04.01 |
22.Array.diff (0) | 2022.03.31 |
21.Sum of Digits / Digital Root (0) | 2022.03.31 |
댓글