"재귀함수가 뭔가요?"
"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어. 마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지. 그의 답은 대부분 옳았다고 하네.
그런데 어느날, 그 선인에게 한 선비가 찾아와서 물었어.
"재귀함수가 뭔가요?"
"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을...
간단한 재귀함수 예제
def count_down(number):
if number < 0: # 만약 숫자가 0보다 작다면, 빠져나가자!
return
print(number) # number를 출력하고
count_down(number - 1) # count_down 함수를 number - 1 인자를 주고 다시 호출한다!
count_down(60)
팩토리얼은 1부터 어떤 양의 정수 n까지의 정수를 모두 곱한 것을 의미합니다.
예를 들면 아래와 같습니다!
3! 은 3 2 1 = 6,
4! 는 4 3 2 1 = 4 3! = 24
즉,
Factorial(n) = n Factorial(n - 1)
Factorial(n - 1) = (n - 1) Factorial(n - 2)
....
Factorial(1) = 1
의 구조입니다!
회문은 똑바로읽으나 거꾸로 읽으나 똑같은 문자를 말한다.
input = "abcba"
def is_palindrome(string):
n = len(string)
for i in range(n):
if string[i] != string[n - i - 1]:
return False
return True
print(is_palindrome(input))
def solution(N, stages):
fail_rate = {}
total_user = len(stages)
for stage in range(1, N+1):
if total_user != 0:
fail_user = stages.count(stage)
fail_rate[stage] = fail_user / total_user
total_user -= fail_user
else:
fail_rate[stage] = 0
return sorted(fail_rate, key=lambda x : fail_rate[x], reverse=True)
요즘 알고리즘 공부를 계속하고 있는데, 하면서 점점 눈에 보이기는 시작하는 것 같다.
하지만 아직 머리속으로 그려지지 않을때가 많아서 머리속으로 , 손으로 그리는 연습, 그리고 그걸 구현하는 방법을 계속해서 연습해봐
야 겠다.