
문제

내 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int numQ = Integer.parseInt(br.readLine());
int answer = 0;
// (number & (number - 1)) == 0 >> number가 2의 거듭제곱이지 알아보는 조건
for (int i = 0; i < numQ; i++) {
long number = Integer.parseInt(br.readLine());
if ((number & (number - 1)) == 0){
answer = 1;
}else{
answer = 0;
}
sb.append(answer).append("\n");
}
System.out.println(sb.toString());
}
}
느낀점
해당 문제는 2의 거듭제곱인 숫자를 이진수료 표현했을 때, 하나의 1과 나머지 모든.. 비트... ... ..