문제
힌트
- n이 100000 일 때 피보나치 수를 구해보니 overflow가 발생하였다
- 구하는 값은 나머지이다.
- overflow를 방지하려면 나머지 연산을 잘 이용해야 한다.
소스 코드
#include <iostream>
#include <climits>
int solution (int n) {
int last2, last1, num;
last2 = 0;
last1 = 1;
for (int i = 2; i <= n; i++) {
num = last1 % 1234567 + last2 % 1234567;
last2 = last1;
last1 = num;
}
return num % 1234567;
}
'개발 관련 기타 > 알고리즘' 카테고리의 다른 글
[프로그래머스] (C++) N진수 게임 (0) | 2019.12.12 |
---|---|
[프로그래머스] (C++) 가장 큰 수 (0) | 2019.12.10 |
[프로그래머스] (C++) 행렬의 곱셈 (0) | 2019.12.05 |
[프로그래머스] (C++) 큰 수 만들기 (0) | 2019.12.04 |
[프로그래머스] (C++) 카펫 (0) | 2019.12.04 |