[프로그래머스] 피보나치 수

박지예·2023년 8월 24일
0

코딩테스트

목록 보기
4/17

문제

정답

public class Solution {
       public long solution(long n)
        {
            long answer = 0;
            
           n = n%1234567;

            bool one = true;
            long num1 = 0;
            long num2 = 0;

            for (int i = 0; i < n + 1; i++)
            {
                if (i == 0)
                {
                    num1 = 0;
                    continue;
                }
                else if(i == 1)
                {
                    num2 = 1;
                    continue;
                }

                answer = (num1 + num2)%1234567;

                if(one)
                {
                    num1 = (num1 + num2)%1234567;
                    one = false;
                }
                else
                {
                    num2 = (num1 + num2)%1234567;
                    one = true;
                }
            }

            return answer%1234567;
        }
}

처음에 자료형을 int 값으로 계산하였는데 테스트 케이스 중 스택 오버플로우가 발생하여 실패했다.
자료형을 long으로 바꾸고 값을 1234567를 나눈 나머지로 처리해 줬다.

profile
언젠간 바다로 갈거야!🐋

0개의 댓글