20200424 가즈아ㅏㅏㅏ

춤추는망고·2020년 4월 26일
0

정리 전 블로그 글들

목록 보기
21/40
post-thumbnail

슈퍼개발자, 춤추는망고입니다.

( 춤 안춥니다. )





이번 시리즈는...

하루에 한알!

1일 1 알고리즘 풀기 !


입니다.
( 우와아아아앙아ㅏㅏㅏㅏ~!!!! )




오늘의 문제!

재귀를 사용하여 팩토리얼(factorial)을 구하는 함수를 구현해주세요.
팩토리얼이란 1에서부터 n까지의 정수를 모두 곱한것을 말합니다.

1! = 1
2! = 1 * 2
5! = 1 * 2 * 3 * 4 * 5

시작조건쓰!

def factorial(n):








문제를 보니,

  1. 인자로써 받은 숫자 ( int ) 를

  2. 다른 구문을 사용하지 않고,

  3. 함수 안에서 함수 실행을 반복하게 해야한다! ( 재귀식 )

라는 내용인 것 같네요.







그렇다면,



저희가 확실히 파악할 수 있는 내용은

def factorial(n):
# 주어진 함수의 이름은 " factorial " 매개변수는 " n "
# n 이라는 매개변수에는 정수형 데이터만 들어옴.

겠네요 ㅎ







조건을 보니



  1. ' for '' if ' 등의 명령 구문을 사용하지 않고,

  2. 함수 안에서 ' 인자를 가공하여, 함수를 실행 ' 하여 재귀를 발생시키고,

  3. 함수의 종료시점을 지정하면 되겠네요!





# 생각이 난 명령!
if (n == 0):
# 0 이 들어오면 ( 3 ~ )
	return 1
	# 1 로 바꿔줘! (0 을 곱하면 무조건 0 이 되니까) ( ~ 3 )

return n * factorial(n-1)
# 함수 안에서 함수를 실행해줘! (factorial(n-1)->(n-1)*(n-2) 니까!) ( 2 )
# 제출한 답안!
def factorial(n):
	if (n == 0):
		return 1
    
	return n * factorial(n-1)

오늘의 결과 : 실패쓰!

( 위의 내용은 모범답안을 보고, 원리에 대한 분석을 한거에요... )

문제를 풀때는 for 문밖에 생각이 안나서... ㅠㅜ

재귀함수에 대해 공부가 더 필요하다고 느꼈어요... ( ㅇ _ㅇ)




사실, 내 머릿속에는...

def factorial(n):
	result = 1
	for i in range(n):
		result *= (i+1)
	return result









프로젝트 때문에, 많이 바빠져서 글 올리는걸 까먹고 있었습니다... ㅠㅜ

더 꼼꼼해질 수 있는 방법을 찾아야겠어요!

오늘 하루도, 우리 모두 화이팅!





감사합니다. ( _ _)

profile
지금까지 이런 망고는 없었다. 이것은 개발자인가 춤추는망고인가

0개의 댓글