import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 테스트 케이스 개수를 잘못 이해해서 한참을 햇갈렸다.
// 몇번 입력받아서 테스트할지를 말하는 거다.
int T = sc.nextInt(); // 테스트 케이스 개수
for (int i = 0; i < T; i++) { // T번 반복
int n = sc.nextInt();
String binary = Integer.toBinaryString(n); // 10진수를 2진수로 변환
// n = Integer.parseInt(binary); // 원래는 다시 int형으로 변환해서 구하려고 했으나 이부분이 오류가 나서 char[] 배열로 구했다.
char[] bn = binary.toCharArray(); // char형 배열에 저장
int m = bn.length;
// 문제에선 뒤에서 부터 시작( [...|3|2|1] )이라 했는데
// 배열은 앞에서부터 시작( [0|1|2|3|...} )하기 때문에 아래처럼 설정
for(int j = m - 1; j >= 0; j--){
if (bn[j] == '1') System.out.print(m - j - 1 + " ");
}
}
}
}
'코딩 테스트 > 백준' 카테고리의 다른 글
(백준) 10989번 : 수 정렬하기 3(JAVA/자바) (0) | 2023.04.04 |
---|---|
(백준) 2947번 : 나무조각(JAVA/자바) (0) | 2023.04.04 |
[백준] 10870번 : 피보나치 수 5(JAVA / 자바) (0) | 2023.03.25 |
[백준] 2460번 : 지능형 기차(JAVA / 자바) (0) | 2023.03.25 |
[백준] 10818번 : 최소, 최대(JAVA/자바) (0) | 2023.03.24 |