Skip to content

[Algorithm] 피보나치 수 #127

@hwangJi-dev

Description

@hwangJi-dev

💬 문제

https://school.programmers.co.kr/learn/courses/30/lessons/12945#


💬 Idea

  • Int의 숫자 표현 범위때문에 7 ~ 14 테스트케이스에서 런타임 에러가 났었다.
  • 따라서 (A + B) % C == ((A % C) + (B % C)) % C 라는 공식을 사용하여 풀이를 변경해주었다.

💬 풀이

func solution(_ n:Int) -> Int {
    var f0 = 0
    var f1 = 1
    
    for _ in 2...n {
        var temp = ((f0 % 1234567) + (f1 % 1234567)) % 1234567
        f0 = f1 % 1234567
        f1 = temp
    }
    
    return f1
}

💬 다른 방법?

func solution(_ n:Int) -> Int {
    var fibo = [0, 1]

    for i in 2...n {
        fibo.append(fibo[i - 2] % 1234567 + fibo[i - 1] % 1234567)
    }

    return fibo[n]
}

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions