Notice
Recent Posts
Recent Comments
Link
개발자는 기록이 답이다
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(Recursive_이진수 출력_재귀) 본문
알고리즘/인프런 - Java알고리즘 입문
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(Recursive_이진수 출력_재귀)
slow-walker 2023. 9. 27. 15:08
2. 이진수 출력(재귀)
예시 입력 1
11
예시 출력 1
1011
10진수를 2진수로 바꿀때 나눈 나머지가 2진수가 됩니다.
public class Main {
public void DFS(int n) {
if(n == 0) return;
else {
System.out.print(n+" ");
DFS(n/2);
}
}
public static void main(String[] args) {
Main T = new Main();
T.DFS(11);
}
}
11 5 2 1
목표는 몫이 아니라 나머지이기 때문에 아래처럼 코드를 수정해줍니다. 또한 1011순서로 출력되기 위해 print함수를 DFS호출하는 아래에 넣어줍니다.
public class Main {
public 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);
}
}
1 0 1 1
이런 내용을 스택프레임으로 어떻게 동작하는지 다시 확인해보겠습니다.
하나 씩 자기 할일을 끝나면 pop이 되고 출력하면서 1011이 반환됩니다, 스택이 비면서 Main으로 복귀되면서 끝납니다.
'알고리즘 > 인프런 - Java알고리즘 입문' 카테고리의 다른 글
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(Recursive_피보나치 재귀(메모이제이션)) (0) | 2023.09.27 |
---|---|
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(Recursive_팩토리얼) (0) | 2023.09.27 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(Recursive_재귀함수(스택프레임)) (0) | 2023.09.27 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(sliding window_최대 매출) (2) | 2023.09.27 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(two pointers_공통 원소 구하기) (0) | 2023.09.27 |