📝 문제
🔥 시도해본 접근 방식
간단하게 반복문을 n번 돌면서 배열에 피보나치 수를 저장하고 배열의 n번째 값에 1234567를 나눈 나머지 값을 반환하는 방법으로 접근했다.
1️⃣ 첫번째 시도
class Solution {
public int solution(int n) {
int[] arr = new int[n + 1];
arr[0] = 0;
arr[1] = 1;
for (int i = 2; i <= n; i++) {
arr[i] = (arr[i - 2] + arr[i - 1]) % 1234567;
}
return arr[n];
}
}
첫번째 시도는 반만 통과 되었다.
알고보니 배열에 저장된 정수값에서 오버플로우가 발생하고 있었다.
✨ 성공 코드
class Solution {
public int solution(int n) {
int[] arr = new int[n + 1];
arr[0] = 0;
arr[1] = 1;
for (int i = 2; i <= n; i++) {
arr[i] = (arr[i - 2] + arr[i - 1]) % 1234567;
}
return arr[n];
}
}
배열에 저장하기 전에 먼저 연산을하고 나머지 값만 저장하도록 하였더니 무사히 통과하였다.
'스터디 > 99클럽 코테 스터디 TIL' 카테고리의 다른 글
99클럽 코테 스터디 23일차 마법의 엘리베이터 (0) | 2024.08.13 |
---|---|
99클럽 코테 스터디 22일차 멀리 뛰기 (0) | 2024.08.12 |
99클럽 코테 스터디 20일차 큰 수 만들기 (0) | 2024.08.11 |
99클럽 코테 스터디 19일차 구명보트 [작성중] (0) | 2024.08.10 |
99클럽 코테 스터디 18일차 단지번호붙이기 (0) | 2024.08.09 |