해설
첫째항 f[0] = 0, 둘째항 f[1] = 1을 초기화 하고, 나머지항들은 f[i] = (f[i-2]+f[i-1])%1234567 로 구한다.
n번쨰 항을 물어보고 있으므로 f[n]을 리턴하면 정답이다.
코드
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <tuple>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <cctype>
#include <iostream>
using namespace std;
using ii = pair<int, int>;
using iii = tuple<int, int, int>;
#define X first
#define Y second
int solution(int n) {
int f[100005];
f[0] = 0; f[1] = 1;
for (int i=2; i<=n; i++)
f[i] = (f[i-2]+f[i-1])%1234567;
return f[n];
}
'Computer Basics > Programmers Solutions' 카테고리의 다른 글
| [프로그래머스 lv2] 큰 수 만들기 풀이 (0) | 2022.08.17 |
|---|---|
| [프로그래머스 lv2] 숫자의 표현 풀이 (0) | 2022.08.17 |
| [프로그래머스 lv2] 게임 맵 최단거리 풀이 (0) | 2022.08.17 |
| [프로그래머스 lv2] 타겟 넘버 풀이 (0) | 2022.08.17 |
| [프로그래머스 lv2] 최솟값 만들기 풀이 (0) | 2022.08.16 |
댓글