[Programmers/JAVA] 피보나치 수

2022. 12. 2. 00:45자바/프로그래머스

 

내 코드

 

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int n) {
    int answer = 0;
    
    int n_1=1, n_2=0;
    int sum=0;

    for(int i=2; i<=n; i++) {
        sum=n_1+n_2;
        n_2=n_1;
        n_1=sum%1234567;
    }
    answer=n_1%1234567;
    
    return answer;
}

 

느낀점

 

생각보다 쉬웠다. 처음 문제를 봤을 때는 무슨 말인지도 이해를 못했었다. 왜냐면 내가 1234567과 피보나치 수의 연관성을 이해하지못했었기 때문이다. 처음 코드를 짰을 때 테스트 7부터 에러가 나서 왜 그런가 했더니 수가 너무 커져서 오버플로우했기 때문이었다. 그 다음부터 1234567과의 연관성을 찾아봤고 그 결과 1234567의 나머지가 피보나치 수의 값과 동일하다는 것을 알게됐다. 연관성을 찾고나니 문제가 쉬워졌다. 뇌를 쓰는 이 기분이 좋다. 오늘도 이렇게 하나씩 배워간다.