본문 바로가기
Algorithm/백준 BOJ

[백준] [Python] #3460 이진수

by 은세라 2021. 9. 23.

1차 제출

n = int(input())
num = []
for i in range(n):
    num.append(int(input()))
arr = []

for i in range(n):
    #num을 이진수로 나타내기
    while(num[i]>1):
        if num[i]%2==0: arr.append(0)
        else: arr.append(1)
        num[i] = num[i]//2
    arr.append(num[i])

    #1의 위치 출력
    for i in range(len(arr)):
        if arr[i] == 1: print(i, end=" ")

    #줄바꿈
    print()

    #arr초기화
    arr = []

 

2차 제출

for _ in range(int(input())):
    n = int(input())
    i = 0
    while n >0:
        if n%2 == 1:
            print(i, end=' ')
        n = n//2
        i += 1

이진수 변환과 동시에 출력...

꼭 input을 다 싸들고 있지 않아도 되는군...

'Algorithm > 백준 BOJ' 카테고리의 다른 글

[백준] [Python] #11279 최대힙  (0) 2021.09.23
[백준] [Python] #10828 스택  (0) 2021.09.23
[백준] [Python] #10809 알파벳 찾기  (0) 2021.09.23
[백준] [Python] #10818 최소,최대  (0) 2021.09.23
[백준] [Python] #2576 홀수  (0) 2021.09.23

댓글