본문 바로가기
[ 다먹살 ]/- Coding

[백준] 3460 이진수

by 엉망으로살기 2022. 10. 4.
반응형

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

 

3460번: 이진수

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

www.acmicpc.net

 

코딩테스트를 볼 때 문자열 쪽이 은근히 출제빈도가 높은 것 같아 꾸준히 해보면 좋을 것 같다는 생각이 든다. 이 문제는 나머지 연산자를 통해서 해결할 수 있는 간단한 문제였다. 


문제 및 입출력 예제

 


코드

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++)
        {
            int n = sc.nextInt();
            int cnt = 0;
            StringBuilder sb = new StringBuilder();
            
            while(n!=0)
            {
                if(n%2==1)
                {
                    sb.append(cnt + " ");
                }
                
                n /= 2;
                cnt++;
            }
            
            System.out.println(sb.toString().substring(0, sb.length()-1));
        }
        
        sc.close();
    }
}

 

반응형

'[ 다먹살 ] > - Coding' 카테고리의 다른 글

[백준] 1789 수들의 합  (0) 2022.10.05
[백준] 2460 지능형기차2  (0) 2022.10.04
[백준] 2501 약수 구하기  (0) 2022.10.04
[백준] 2153 소수 단어  (0) 2022.09.29
[백준] 1357 뒤집힌 덧셈  (0) 2022.09.28

댓글