Koala - 12기/기초 알고리즘 스터디

[백준/python] 15917번 : 노솔브 방지문제야!!

plplpl 2023. 9. 9. 12:16

문제

https://www.acmicpc.net/problem/15917

 

15917번: 노솔브 방지문제야!!

어떤 수 a가 2의 거듭제곱꼴로 나타내어진다고 해 봅시다. 그렇다면, a = 2n (단 n ≥ 0인 정수) 를 만족할 겁니다. 보통, 각 비트별로 검사를 하면서, 켜져 있는 비트의 개수를 알아내는 것도 좋은

www.acmicpc.net


문제풀이

1. 시간 초과 방지를 위해 sys 라이브러리의 readline() 함수를 이용한다.

2. 문제 조건에서 a는 1이상 2**31-1 이하 자연수이므로 리스트에 2**0 ~ 2**30까지 추가해둔 후, a값을 입력받아 비교한다.

 


 

 

Code

import sys
input = sys.stdin.readline

Q = int(input())

list = []

for n in range(0,31):
    num = 2**n
    list.append(num)
    
for i in range(0,Q):
    a = int(input())
    if a in list:
        print("1")
    else:
        print("0")