Simple&Natural

프로그래머스 - 피보나치 본문

코딩테스트 풀이/프로그래머스

프로그래머스 - 피보나치

Essense 2020. 1. 21. 23:48
728x90

풀이과정)

 

일반적인 재귀를 이용하면 스택오버가 발생하므로 꼬리재귀 함수를 이용해야 한다.

 

 

 

사용언어 : Kotlin

 

풀이)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
    tailrec fun fibNum(n: Int, a: Int, b: Int): Int {
        if (n==1)
            return b
        else if (n==0)
            return a
 
        return if((a+b)/1234567>=1) fibNum(n-1, b, (a+b)%1234567else fibNum(n-1, b, a+b)
    }
    
    fun solution(n: Int): Int {
        return fibNum(n, 01)
    } 
}
cs

 

출처 : https://programmers.co.kr/learn/courses/30/lessons/12945

728x90