본문 바로가기

Algorithm/Programmers

[Programmers] C++ LV2_피보나치수

#사람마다 푼 방법이 다릅니다. 아 이런 코드도 있구나라는 생각만 가져주시면 감사하겠습니다. 제 코드에 있어서 비효율적인 부분이 있으면 댓글로 남겨놔주시면 참고하여 성장할 수 있도록 하겠습니다!!!

 

하지만!!! 무분별한 비난은 삼가해주세여!

 

해당 문제는 배열로 풀면 쉽게 풀리는 문제이며, 100000이라는 숫자가 제한이었습니다. 그래서 이러한 점을 봤을 때 문제에서 나온 1234567을 매번 나눠주고 나머지를 넣어주면 쉽게 풀리는 문제입니다.

#include <string>
#include <vector>
#include<iostream>
#define SIZE 100000

using namespace std;
long long arr[SIZE];
void init() {
    for (int a = 0; a < SIZE; a++) {
        arr[a] = 0;
    }
}

int solution(int n) {
    int answer = 0;
    arr[1] = 1;
    for (int a = 2; a <= n; a++) {
        arr[a] = (arr[a - 1] + arr[a - 2]) % 1234567;
    }
    return arr[n];
}