JH 개발자의 성장일지

Coding Study / 24.01.22 본문

Coding Study

Coding Study / 24.01.22

JHDeveloper 2024. 1. 22. 17:44
# 재귀함수 : 함수가 자기 자신을 호출하는 프로그래밍 기법
# 장점 : 문제를 작은 부분 문제로 나누어 해결하는 데 유용

#기본 코드
def recursive_function(parameters):
    # 기본 케이스(base case): 함수 호출을 멈추는 조건
    if base_case_condition:
        return base_case_result
    
    # 재귀 호출(recursive call): 함수가 자기 자신을 호출
    else:
        return recursive_function(modified_parameters)


#레벨 1 - 레벨 발사
def countdown(n):
    if n <= 0:
        print('발사!')
    else:
        print(n)
        countdown(n-1)



#레벨 2 - 2진수 변환
def print_binary(n):
    if n<2:
        print(n, end='')
    else:
        print_binary(n//2)
        print(n%2,end='')


#레벨 2 - 0-n까지의 합계 구하기
def sum(n): # 이 함수의 목표는 0~n 까지의 합을 구하는 것이다
    if n == 0: # n=0 이면 합은 0이다
        return 0
    return n + sum(n-1) # n이 0보다 크면 0에서 n 까지의 합은, n-1까지의 합에 n을 더한 것이다.


#레벨 3 - 최대공약수 구하기
def gcd(m, n):
    if m < n:
        m, n = n, m
    if m % n == 0:
        return n
    else:
        return gcd(n, m%n)

 


재귀함수 적용하기 포인트 3가지

1. 함수가 끝나는 지점에서 어떤 작업이 이루어지는가

2. 함수가 끝나게 되는 조건이 무엇인가

3. 반복적으로 하고 있는 작업이 무엇인가


 

느낀점

1) 아이들을 가르치면서 실력이 많이 느는 거 같다.

2) 재귀함수는 역시나 어렵다. 하지만 이번 기회에 포인트를 잘 잡은 거 같아서 기분이 좋다. (맞는 지는 확실하지 않지만)

'Coding Study' 카테고리의 다른 글

코테준비 (2) / 2024.08.11  (0) 2024.08.11
코테준비 (1) / 2024.08.04  (0) 2024.08.11
Python / 24.02.19  (0) 2024.02.19
Coding Study / 24.02.05  (0) 2024.02.06