100.알고리즘/01. Baekjoon Online

[Baekjoon online] 1003번 문제 - 피보나치 함수

Righ 2016. 7. 14. 17:43
  static int zero_case = 0;
        static int one_case = 0;
        static void Main(string[] args)
        {
            int test_case = Int32 .Parse(System.Console.In.ReadLine());
           
            while (test_case > 0)
            {
                int n = Int32 .Parse(System.Console.In.ReadLine());
                zero_case = 0;
                one_case = 0;
                fibonacci(n);
                System. Console.Out.WriteLine(zero_case + " " + one_case);

                test_case--;
               
            }

        }

        static int fibonacci(int n)
        {
            if (n == 0)
            {
                zero_case++;
                return 0;
            }
            else if (n == 1)
            {
                one_case++;
                return 1;
            }
            else
            {
                return fibonacci(n - 1) + fibonacci(n - 2);
            }

        }



[문제]

https://www.acmicpc.net/problem/1003


[풀이]

처음엔 클래스를 하나 생성해서 그 안에 set,get 함수 fibonacci 함수를 멤버 함수로 만들어서 제출했으나, 시간초과 에러가 떴다.

그 후엔 멤버 변수를 public으로 선언하여 바로 접근하게 했지만 그래도 시간 초과 에러가 뜬다.

그래서 모든 변수와 함수를 static으로 선언하여 ( Main함수가 static 함수 이므로 static 변수와 함수에만 접근 가능 ) 걸리는 시간을 단축하였다. 이것이 문제에서 원하는 해결 방안인지는 확신하지 못하겠다.