문제 원본

https://www.hackerrank.com/contests/projecteuler/challenges/euler002


문제 요약

N 미만의 피보나치 수열 중 2의 배수를 모두 합한 값. (단, 최초 2개의 숫자는 1, 2로 시작함)



-Solution.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
 
public class Solution {
 
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int t = in.nextInt();
        for(int a0 = 0; a0 < t; a0++){
            long n = in.nextLong();
            
            long sum = 0;
            long prev = 1, fibo = 2, tmp = 0;
            
            while(fibo < n){
                if(fibo%2 == 0)
                    sum += fibo;
                
                tmp = prev;
                prev = fibo;
                fibo += tmp;
            }
            
            System.out.println(sum);
        }
    }
}
cs



- 주의할 점!

  같은 연산을 반복 수행한다고 해서 재귀함수로 구현하면 쓰뜌삣!!!!!!!!!!!! 그러면 공간복잡도 꽝꽝꽝




천천히, 꾸준히 syaring's study

+ Recent posts