shlinn 2023. 1. 3. 21:48

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

 

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

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

www.acmicpc.net

 

 

문제 풀이

첫번째 for 문을 통해 2^n (0<n<31) 에 해당하는 수를 리스트 = numlist 안에 추가하는 방식으로, 

1 이상 2^31 -1 이하 에 해당하는 2의 거듭제곱 수들을 리스트로 만듦.

입력된 Q를 통해 두번째 for 문으로 0부터 Q-1까지 반복. for문 안에서 a값을 입력하여 입력된 a 값이 numlist 안에 포함되면 0, 포함되지 않으면 1을 출력하도록 작성함.

 

문제 코드