
package samsung01;
import java.io.*;
public class BOJ_3460_이진수 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int testcase_num = Integer.parseInt(br.readLine());
for (int i = 0; i < testcase_num; i++) {
int target_num = Integer.parseInt(br.readLine());
int idx = 0;
StringBuilder sb = new StringBuilder();
while (target_num > 0) {
if (target_num % 2 == 1) {
sb.append(idx).append(" ");
}
target_num /= 2;
idx++;
}
System.out.println(sb.toString().trim());
}
}
}
이 문제에서는 여러 개념들을 필요로 한다.
왜 인트형변수 idx에 append가 적용될 수 있는가?
sb.append(idx).append(" ");
//StringBuilder는 내부 변수를 자동으로 변환해서 처리해 줌
int idx = 2;
sb.append(idx).append(" ");
//이런 느낌으로 작동이 되기 때문에
sb = "2 " 가 된다.