🤖
그림으로 배우는 알고리즘 제 6장: 그 외의 알고리즘들(4)
September 14, 2022
제 6장: 그 외의 알고리즘들(4)
71. 재귀 호출을 이용해 N의 팩토리얼 구하기
- 재귀호출: 함수에서 값을 구하기 위해 자기자신을 호출하는 표현이 포함된 상황
- 재귀 호출에서 자기 자신을 다시 호출하기만 하는 경우에는 무한 루프에 빠질 수 있으므로 아래 등을 적용해 무한루프를 막아야한다.
- 자기자신을 다시 호출하는 경우와 단순하게 결과값만 반환하는 경우를 분리
- n의 팩토리얼(n!)을 구하는 알고리즘을 이용해보자.
- n! = 1 * 2 * 3 * … * (n-1) * n
- 이 때 (n-1)을 미리 구했다면 (n-1)! * n 으로 구할 수 있다.
- 즉, n!을 구하는 함수를 fact(n)이라고 했을 경우
- fact(n) = fact(n-1)! * n과 같이 함수가 스스로를 호출하도록 표현할 수 있다.
- n = 1 → 1! = 1
- n ≥ 2 일 경우 fact(n-1)! * n을 반환
칼럼: 알고리즘과 플로우 차트(순서도)
- 플로우차트: 알고리즘의 처리 흐름(해결 방법)을 시각적으로 명확화
- 미리 약속된 기호들을 사용해 처리의 흐름을 설명
- 대표적인 기호
- 터미널: 시작과 종료 표시
- 처리: 처리 내용 기재
- 판단: 적혀있는 조건에 따라 처리 분기
- 반복: 루프(반복처리)의 시작과 끝을 기재
- 정의된 처리: 다른 곳에서 정의된 처리(보조 프로그램)를 호출
- 흐름선: 처리 흐름을 표시. 화살표를 사용해 처리 방향을 명확히 표시