알고리즘/Python

[python] 백준 3460 - 이진수

제주도랏맨 2022. 3. 2. 14:58

출처 : 백준, https://www.acmicpc.net/problem/3460

 

3460번: 이진수

양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 최하위 비트(least significant bit, lsb)의 위치는 0이다.

www.acmicpc.net

 

내가 이해를 못하는건가 문제 설명이 부족한건가

예제에 2개나 3개짜리 예제를 보여줘야 하는 것 같은데

계속 답 값 자체는 맞는데 출력 형식을 못 맞춰서 틀림......

input도 테스트 케이스별로 한 줄 씩 들어가고 출력도 테스트케이스 별로 한 줄 씩 나온다.

 

input 

2 #T
13
2

output

0 2 3
1

 

더보기

 

풀이

 

if __name__ == '__main__':
  T = int(input())

  for i in range(T):
    num = int(input())
  
    for index in range(len(bin(num))):
      if bin(num)[::-1][index] == '1':
        print(index, end=' ')
    print()

 

T번 입력받아서 입력 받은 숫자를 bin 함수를 통해 이진화하고

이를 [::-1]로 반대로 뒤집어 하나씩 보면서 1인 index를 출력한다.


 

시간 복잡도

 

-

 

다른 사람의 풀이를 보면서 알게 된 점

 

-

 

고찰

 

예제는 풍부하게....