728x90
반응형
📜 문제 내용
🤔 과정
- 규칙상 피보나치 수열처럼 arr[ i ] = arr[i - 1] + arr[i - 2] 형태를 갖는 것을 알게 되었다.
- return 값이 1234567 로 나눈 나머지 값이므로, 모듈러 연산에 의해 배열에 넣을 때부터 나눈 나머지 값으로 넣는다.
모듈러 연산의 특성
1. (a + b) % m = ((a % m) + (b % m)) % m
2. (a − b) % m = ((a % m) − (b % m) + m) % m
3. (a × b) % m = ((a % m) × (b % m)) % m
✨ 최초 제출 답안
class Solution {
public long solution(int n) {
int[] arr = new int[n + 1];
arr[0] = 1;
arr[1] = 1;
for(int i = 2; i <= n; i++){
arr[i] = (arr[i - 1] + arr[i - 2]) % 1234567;
}
long answer = arr[n];
return answer;
}
}
- 모듈러 연산의 특징을 알고 있다면, 그렇게 어렵지 않은 문제였다.
🔗 문제 링크
728x90
반응형