[알고리즘]/백준

자바 - 구현 - 백준 3460 이진수

broship 2021. 5. 2. 20:24

문제


 

 

 

문제해결


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진수를 구할 수 있었다

출처: blue-boy.tistory.com/m/66?category=740591