Computer Science/알고리즘

[코드트리 챌린지] 재귀함수 활용

hyunjin 2023. 10. 19. 17:12

실력진단

그래도 조금 복구돼따~

학습내용

 

값을 반환하지 않는 재귀함수

재귀함수를 이용한 별 출력2

https://www.codetree.ai/missions/5/problems/star-output-with-recursive-function-2?&utm_source=clipboard&utm_medium=text

n=int(input())

def draw(n):
    if n==0:
        return
    for i in range(n):
        print("*",end=' ')
    print()
    draw(n-1)
    for i in range(n):
        print("*",end=' ')
    print()

draw(n)

값을 반환하는 재귀함수

재귀함수를 이용한 최소공배수

https://www.codetree.ai/missions/5/problems/least-common-multiple-using-recursive-function?&utm_source=clipboard&utm_medium=text

n=int(input())
arr=list(map(int,input().split()))

def lcm(a, b):
  return (a * b) // gcd(a, b)

def gcd(a, b):
  while (b != 0):
    r = a % b
    a = b
    b = r
  
  return a
  
def solution(arr,n):
    sol=arr[0]
    for i in range(1,n):
        sol=lcm(sol,arr[i])
    return sol

print(solution(arr,n))

 

 

전에 공부했던 최대공약수 최소공배수 알고리즘을 이용하여 풀었습니다.

 

https://hyunjini.tistory.com/54

 

최대공약수 최소공배수 알고리즘 (유클리드 호제법)

최대공약수 ➡️유클리드 호제: 2 개의 자연수 a, b(a > b)에 대해서 a를 b로 나눈 나머지가 r일 때, a와 b의 최대공약수는 b와 r의 최대공약수와 같다 두 수를 입력으로 받고 작은 수가 0이 될때 까지

hyunjini.tistory.com