- 회고
82. 멀리 뛰기 : https://school.programmers.co.kr/learn/courses/30/lessons/12914
- 풀이 과정
class Solution {
public long solution(int n) {
long answer = 0;
long[] arr = new long[3];
arr[0] = 1;
arr[1] = 2;
if(n == 1){
return 1;
}else if(n == 2){
return 2;
}else{
for(int i = 2; i < n; i++ ){
arr[2] = arr[0] % 1234567 + arr[1] % 1234567;
arr[0] = arr[1] % 1234567;
arr[1] = arr[2] % 1234567;
}
}
return answer = arr[2] % 1234567;
}
}
- 위 문제를 조금 더 구해보면 피보나치 수열임을 알 수 있다.
- 피보나치 수열은 f(n) = f(n-1) + f(n-2)이므로
- 반복문을 통해 구하는 값을 계속 초기화하며 진행한다.
- 1234567의 나머지를 구하므로 오버플로우 방지를 위해 분배법칙을 사용해 계산마다 1234567의 나머지를 구하면서 진행한다.
- 진행
일자 | 완료 번호 |
24.07.16 ~ 24.07.31 | 1~63 |
24.08.01 ~ 24.08.20 | 64~75 |
24.08.21 | 76 |
24.08.23 | 77 |
24.08.27 | 78 |
24.08.29 | 79 |
24.08.30 | 80 |
24.09.06 | 81 |
24.09.10 | 82 |
'Java & Spring > 코딩테스트' 카테고리의 다른 글
52일차 - 알고리즘 코드카타(실패) (1) | 2024.10.01 |
---|---|
43일차 - 알고리즘 코드카타 (0) | 2024.09.12 |
39일차 - 알고리즘 코드카타 (0) | 2024.09.06 |
34일차 - 알고리즘 코드카타 (0) | 2024.08.30 |
33일차 - 알고리즘 코드카타 (0) | 2024.08.30 |