코딩테스트
[재귀함수] 2. 이진수 출력
개발하는지호
2024. 1. 26. 21:33
<<풀이>>
-강사님 풀이-
강사님은 콘솔하여 구했다. 원리는 재귀함수이고 이 역시 스택에 쌓이다가 조건에 의해 끝이나면 돌아가면서 진행을 마무리한다.
import java.util.*;
class Main {
private void DFS(int n) {
if(n == 0) return;
else {
DFS(n / 2);
System.out.print(n % 2 + " ");
}
}
public static void main(String[] args) {
Main T = new Main();
T.DFS(11);
}
}
-나의 풀이-
나는 String으로 반환
import java.util.Scanner;
class Main {
private String DFS(int n) {
if (n == 0) {
return ""; // 0일 때 빈 문자열 반환
} else {
return DFS(n / 2) + (n % 2); // 현재 이진수 자릿수 추가 후 재귀 호출
}
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
int n = in.nextInt();
if (n == 0) {
System.out.println("0"); // 입력값이 0인 경우 바로 0 출력
} else {
System.out.println(T.DFS(n)); // 재귀 함수 호출
}
}
}