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 |
댓글