코린이의 소소한 공부노트

[프로그래머스/Lv.2] 피보나치 수 본문

코딩테스트 풀이/JAVA

[프로그래머스/Lv.2] 피보나치 수

무지맘 2022. 11. 23. 12:44

1. Input

1) 자연수 n

 

2. Output

1) n번째 피보나치 수를 1234567로 나눈 나머지

2) F(0) = 0, F(1) = 1일 때 F(n) = F(n-1) + F(n-2)

 

3. Constraint

1) n2 이상 100,000 이하의 자연수

 

4. Example

Input: n=5 -> Output: 5

설명: 피보나치 수는 0, 1, 1, 2, 3, 5, ...이므로 5번째 수인 51234567로 나누면 나머지는 5가 된다.

 

5. Code

1) 첫 코드(2022/??)

int a=0, b=1, c=0;
for(int i=2 ; i<=n ; i++){
    c = (a+b)%1234567;
    a = b%1234567;
    b = c%1234567;
}
return c;

  - overflow 방지를 위해 (a+b)%n은 a%n + b%n과 같음을 이용