경기도미래기술학교 AI개발자 부트캠프 60일차 TIL- 알고리즘 공부. 딕셔너리를 잘 몰랐다. 재귀 함수. 유클리드 호제법.

2023. 8. 1. 20:14python

반응형
def factorial(n: int) -> int:
  if n==0:
    return 1
  elif n > 0:
    return n * factorial(n-1)


n = int(input('정수 입력: '))
factorial(n)

팩토리얼 문제. 수강생분이 짜주신거다.

factorial 함수를 만들어서 n이 0이 되면 return은 1로 하고, 그렇지 않을 경우에는 n * n-1을 계속 하는 방식이다.

자기 자신을 계속 호출하면서 가져온 파라미터는 1씩 작아지는 것인데, 최종적으로는 밑에 return n* factorial(n-1)이 최종적으로 return 되는 값이 되는 것이고 그 때 까지는 이 메서드가 계속 연산이 진행되며 반환되는 것이다.

 

이렇게 하면 마지막은 1을 곱한것이니까 사실상 값은 안바뀌고 마무리가 될 것이다.

 

유클리드 호제법.

a, b = 40, 60
#큰 수가 왼쪽으로 간다.
if(b>a) : a,b = b,a

#작은 수가 0이 아닐 때 까지 반복.
while(b!=0):
  a=a%b
  print(a)
  a,b=b,a

print(a)

 

딕셔너리가 좀 낯설어서 좀 어색하고 리스트 컴프리헨션도 좀 어색하고.. 공부를 좀 더 해야겠는 부분.

 

오늘은 이정도만 알면 성공이지 않을까 싶네..

728x90