코딩 테스트/백준
[백준] 3460번 : 이진수(JAVA/자바)
토자맨
2023. 3. 24. 00:13
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;
// 배열은 뒤가 아닌 앞에서부터 시작하기 때문에 아래처럼 설정
for(int j = m - 1; j >= 0; j--){
if (bn[j] == '1') System.out.print(m - j - 1 + " ");
}
}
}
}