코테 대비 두번째 시간입니다. 눈높이는 계속해서 초보인 제 눈높이에 맞춰서 가겠습니다!

이진수를 구하는 문제입니다.
이진수를 구할때는 2로 십진수 숫자를 더이상 못나눌 때 까지 나눠서 나온 나머지를 밑에서 부터 읽는 것입니다.

이 아이디어를 적용해봅시다. 그런데 위치가 낮은 것 부터 출력하라고 하네요! 그러므로 거꾸로 읽어주겠습니다. 그러니까 위에서부터 아래로요!
거꾸로 읽어서 값이 1인곳의 인덱스를 가져오면 되겠죠!
import java.util.Scanner;
public class Baekjoon {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 이번에도 Scanner를 쓰겠습니다.
int T = scanner.nextInt(); // 테스트 케이스를 받아와주고요.
for (int i = 0; i < T; i++) {
int n = scanner.nextInt();
for (int j = 0; n > 0; j++) { // n이 0보다 작아지면 멈춥시다.
if (n % 2 == 1) { // n을 2로 나눴을때 나머지가 1이 나오면 출력합니다.
n = n / 2; // 그리고 n이 계속해서 줄어야겠죠! 2로 나눴으니까요!
System.out.print(j + " ");
} else {
n = n / 2;
}
}
System.out.println(); //테스트케이스 한번이 끝나면 개행해주는 것도 잊지맙시다!
}
scanner.close();
}
}
구현보다 핵심 아이디어를 먼저 떠올려보고 그것을 구현하는 방식으로 하다보면 늘지 않을까 싶습니다!
'코테대비' 카테고리의 다른 글
[백준/JAVA] 2941번: 크로아티아 알파벳 (0) | 2024.10.30 |
---|---|
[백준/JAVA] 10870번: 피보나치 수 5 (코테대비5) (1) | 2024.10.18 |
[백준/JAVA] 2460번: 지능형 기차 (코테대비4) (1) | 2024.10.18 |
[백준/JAVA] 10818번: 최소 최대 (코테대비3) (2) | 2024.10.13 |
[백준/JAVA] 2501번: 약수 구하기 (코테대비1) (2) | 2024.10.13 |