문제
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")
'Koala - 12기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 11022번 : A + B - 8 (0) | 2023.09.10 |
---|---|
[백준/Python] 15726번: 이칙연산 (0) | 2023.09.10 |
[백준/python] 20540번: 연길이의 이상형 (0) | 2023.09.09 |
[백준/python] 12756번: 고급 여관 (0) | 2023.09.09 |
[백준/python] 4493번: 가위 바위 보? (0) | 2023.09.08 |