문제
문제해결
import java.util.Scanner;
public class B3_3460 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
//2진수 담을 String 배열
String[] binary = new String[n];
//2진수 구하기
for (int i = 0; i < n; i++) {
int num = sc.nextInt();
String tmp = "";
while (num!=1){
tmp += num%2;
num /= 2;
}
tmp += num;
binary[i] = tmp;
}
//1의 위치 찾아 출력하기
for (String tmp : binary){
for (int i = 0; i < tmp.length(); i++) {
if (tmp.charAt(i)=='1'){
System.out.print(i+" ");
}
}
}
}
}
- 2진수를 while문을 통해 하나하나 구해서 1의 위치를 출력하는 방법이다.
- 구글링 해보니 toBinaryStirng() 메소드를 통해 쉽게 2진수를 구할 수 있었다
'[알고리즘] > 백준' 카테고리의 다른 글
자바 - 구현 - 백준 2460 지능형 기차2 (0) | 2021.05.03 |
---|---|
자바 - 구현 - 백준 10818 최소, 최대 (0) | 2021.05.03 |
자바 - 구현 - 백준 2501 약수 구하기 (0) | 2021.05.01 |
[실패] 11047 (0) | 2021.04.25 |
자바 - 구현 - 백준 11047 동전 0 (0) | 2021.04.24 |