
문제

내 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main extends Exception {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int num = Integer.parseInt(br.readLine());
int answer = 3;
while (true) {
if (num % 2 != 0) {
break;
} else {
num /= 2;
}
}
if (num == 1){
answer = 1;
}else{
answer = 0;
}
sb.append(answer);
System.out.println(sb.toString());
}
}
느낀점
주어진 수가 몇인지 모르기 때문에 무한반복을 돌리면서 계속해서 2로 나눈다.
그러면서 2로 나누었을 때 나머지가 1이 아닌 경우 끝낸다.
그 후, if문을 사용해 num이 1이 되면 2의 제곱, 아닌 경우에는 2의 제곱이 아니라고 판별한다.