문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12945
C++ 풀이
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
vector <int> f;
f.resize(n + 1);
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++) {
f[i] = (f[i - 1] % 1234567) + (f[i - 2] % 1234567);
}
return (f[n] % 1234567);
}
기본 피보나치 수열 문제이다.
처음에는 재귀함수를 사용하여 풀었지만 테케 7번부터 시간 초과가 나서 DP로 변경하여 풀었다.
반응형
'알고리즘 · 코딩' 카테고리의 다른 글
[프로그래머스] 최대공약수와 최소공배수 (0) | 2020.05.06 |
---|---|
[프로그래머스] 소수 찾기 (0) | 2020.05.05 |
[프로그래머스] 콜라츠 추측 (0) | 2020.04.27 |
[프로그래머스] 하샤드 수 (0) | 2020.04.26 |
[프로그래머스] 징검다리 건너기 (0) | 2020.04.23 |