// 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;
};
'Algorithm' 카테고리의 다른 글
LeetCode 387. First Unique Character in a String (0) | 2023.03.02 |
---|---|
Leetcode 374. Guess Number Higher or Lower (0) | 2023.02.28 |
LeetCode 303. Range Sum Query - Immutable (0) | 2023.02.22 |
Leetcode 412. Fizz Buzz (0) | 2023.02.21 |
Leetcode 290. Word Pattern (javascript) (0) | 2023.02.20 |