코드를 이렇게 짯는데 테스트 7부터 실패로 뜬다.. 해결 방법을 몰라서 질문하기 통해서 봤는데..
애초에 n이 담길 수 있는 범위가 한정적이여서 오버플로우가 되면 이상한 값이 들어간다고한다.
따라서, 값을 넣어줄 때 부터 1234567의 나머지를 넣어주면 된다.
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(int n) {
int answer = 0;
vector<int> array;
array.resize(n + 1);
array[0] = 0;
array[1] = 1;
for(int i = 2; i <= n; i++)
{
array[i] = (array[i-2] + array[i-1]) % 1234567;
}
answer = array[n] % 1234567;
return answer;
}
댓글