Algorithm
Leetcode 338. Counting Bits
KANG_G1
2023. 2. 24. 16:02
// example 1
Input: n = 2
Output: [0,1,1]
Explanation:
0 --> 0
1 --> 1
2 --> 10
정수 n이 주어졌을 때, 길이 n + 1의 배열 ans를 반환하여 각 i(0 <= i <= n)에 대해 ans[i]는 i의 이진 표현에서 1의 수이다.
=> 인자로 넘어온 n에 대해 2진수로 변환 후, 2진수로 변환한 요소들을 더하는 문제였다.
인자로 넘어온 Integer에 대해 2진수로 변환 후 넣으면 해결될 줄 알았지만
요소를 더해줘야 하는 부분도 있었기에 이중 for문을 사용한 코드를 작성했다.
인자 n을 toString()을 사용해 Integer-> String으로 타입이 변한 것을 이용했고,
num.length를 활용해 for문을 사용할 수 있었다.
그리고 다시 요소를 더해줄 땐 Number()를 사용해 Integer 타입으로 변환했고
최종적으로 숫자 배열을 만들어 return했다.
/**
* @param {number} n
* @return {number[]}
*/
var countBits = function(n) {
let result = [];
for(let i=0; i<=n; i++) {
const num = i.toString(2);
let val = 0;
for(let j=0; j<num.length; j++){
val += Number(num[j]);
}
result.push(val);
}
return result;
};