Menu
CoddyTech

Counting Bits

0 이상인 정수 n이 주어집니다. 0부터 n까지의 각 숫자 i에 대해, i를 이진수로 나타냈을 때 1이 몇 번 나타나는지 세세요. n+1개의 항목이 있는 배열로 개수를 반환하세요. 여기서 항목 i는 숫자 i에 대한 개수입니다.

함수

countBits(n: integer) → integer-array
ninteger
마지막으로 셀 숫자, 0 이상
반환값integer-array
n+1개의 개수를 담은 배열로, 항목 i는 i의 1비트 개수입니다

제약 조건

  • 0 ≤ n ≤ 2 × 104

예제

입력
n = 2
출력
[0, 1, 1]
설명
2진수에서 0은 0, 1은 1, 2는 10입니다. 즉, 1이 하나도 없는 경우, 그다음은 하나, 그다음도 하나입니다.

lock icon제출 시 숨은 테스트 +15개

challenge icon

후속 질문

비트를 세는 내장 함수도 사용하지 않고 각 숫자를 처음부터 다시 세지도 않으면서 O(n) 시간에 배열 전체를 채울 수 있나요?

코드 초기화
def countBits(n):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

입력

n = 2

기대값

[0, 1, 1]