[Swift] 꼬리 재귀(Tail Recursion)와 꼬리 재귀 최적화
·
Swift/개념 & 응용
꼬리 재귀(Tail Recursion) 꼬리 재귀란 재귀의 결과를 바로 반환하는 재귀 형태입니다. 말로 들으면 무슨 말인가 이해가 안 될 것이므로 코드로 알아보겠습니다. 아래 함수들은 단순히 1 ~ n까지의 합을 구하는 역할입니다. 먼저 일반 재귀 형태를 먼저 보겠습니다. func recursion(_ num: Int) -> Int { if num == 0 { return num } return num + recursion(num - 1) } 파라미터로 num을 전달 받고 num + recursion 결과를 반환합니다. 이 메서드 안에는 num + recursion 이라는 연산이 존재합니다. 연산이 존재하면 연산을 위한 값을 스택에 저장해야하기 때문에 재귀를 할 때마다 스택에 메모리 할당이 발생합니다. ..
유정주
'tail recursion' 태그의 글 목록