코딩테스트/백준

백준 2460 Java

플래시🦥 2022. 8. 1.
반응형

https://www.acmicpc.net/problem/3460

 

3460번: 이진수

양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 최하위 비트(least significant bit, lsb)의 위치는 0이다.

www.acmicpc.net


1. Scanner 사용

import java.util.*;
 
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++) {
			int a=sc.nextInt();
			String res=Integer.toBinaryString(a);
			for(int j=res.length()-1;j>=0;j--) {
				if(res.charAt(j)=='1') {
					System.out.print(res.length()-j-1+" ");
				}
			}
			System.out.println();
		}
		sc.close();

	}
}

 

2. BufferRead사용

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
 
public class Main {
 
	public static void main(String[] args)throws IOException{
			
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int T=Integer.parseInt(br.readLine());
		for(int i=0;i<T;i++) {
			int a=Integer.parseInt(br.readLine());
			String res=Integer.toBinaryString(a);
			for(int j=res.length()-1;j>=0;j--) {
				if(res.charAt(j)=='1') {
					System.out.print(res.length()-j-1+" ");
				}
			}
			System.out.println();
		}

	}
}

 

아래가 scanner사용, 위가 bufferRead사용이다.

시간이 단축됨을 확인 할 수 있다. 

728x90
반응형

'코딩테스트 > 백준' 카테고리의 다른 글

백준 10870 Java  (0) 2022.08.02
백준 2460 Java  (0) 2022.08.01
백준 2501 Java  (0) 2022.08.01
백준 2751 Java  (0) 2022.07.22
백준 1157 Java  (0) 2022.07.22

댓글