재귀함수 2

[파이썬/알고리즘] 재귀함수를 이용한 이진수 출력

파이썬을 이용한 이진수 출력 문제 문제) 10진수가 입력되면 2진수로 변환해 출력하는 프로그램을 작성하라. 입력 첫 줄에 10진수 n이 주어진다. 풀이 n=int(input()) def DFS(x): if x==0: return else: DFS(x//2) print(x%2, end='') DFS(n) DFS(깊이 우선 탐색) 우선, 십진수를 이진수로 바꾸는 방법을 알아야한다. (간단히 설명하자면, 십진수를 2로 나누어 나온 나머지를 역순으로 나열하면 된다.) 예를 들어 n=11 일 때, 작동하는 과정은 아래와 같다. DFS(11) 호출, 함수의 호출 정보를 스택에 기록, print(11%2, end='')는 시행되지 못하고 DFS(11//2) 호출로 넘어감 DFS(5) 호출, 함수의 호출 정보를 스택에..

[Python] 재귀함수의 개념과 종료조건

재귀함수란? 재귀함수란 자기 자신을 호출하는 함수이다. 즉, 함수 안에 자신의 함수를 가지고 있는 것이다. 예시 def A(x): print(x) A(x-1) 위 함수를 보면 A라는 함수 안에 A 함수를 다시 가지고 있는 것을 볼 수 있다. 이는 반복문의 효과를 가지게 된다! 예를 들자면, 위 함수에서 A(5)는 print(5) ➡️ A(4) ➡️ print(4) ➡️ A(3) ➡️ print(3) 이 과정을 무한 반복하게 한다! >>>A(5) 5 4 3 2 1 0 -1 -2 #무한출력주의!!! 재귀함수 종료조건 따라서 무한출력을 방지하기 위해서는 종료 조건을 넣어줘야한다. (참고로 종료 조건을 넣는 방법은 아래 2가지.) #if문 def A(x): if x>0: print(x) A(x-1) #if, r..

Python/문법 2022.10.26