728x90
반응형
안녕하세요. delay100 입니다!
오늘의 TIL은 간단합니다.
미들러 문제
피보나치 수 (https://school.programmers.co.kr/learn/courses/30/lessons/12945)
문제에 나와있 듯 피보나치 값은 아래와 같습니다.
F(2) = F(0) + F(1) = 0 + 1 = 1
F(3) = F(1) + F(2) = 1 + 1 = 2
F(4) = F(2) + F(3) = 1 + 2 = 3
F(5) = F(3) + F(4) = 2 + 3 = 5
그런데 문제를 보면 n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴해야합니다.
아래의 코드가 핵심인데,
fibo[i] = (fibo[i-1] + fibo[i-2]) % 1234567;
fibo 값을 그 대로 넣는 것이 아니라 1234567로 나눈 나머지값을 fibo에 저장합니다.
n | f(n) | f(n)%1234567
29 514229 514229
30 832040 832040
31 1346269 341274
32 2178309 750825
33 3524578 933839
34 5702887 800971
35 9227465 892622
36 14930352 409970
이렇게 나눠서 저장하지 않으면 f(n)이 금세 int형의 크기를 넘어가게 됩니다.
따라서 이렇게 나머지 값을 넣어서 계산합니다.
class Solution {
public int solution(int n) {
int answer = 0;
int[] fibo = new int[100001];
fibo[0] = 0;
fibo[1] = 1;
for(int i=2; i<(n+1); i++) {
fibo[i] = (fibo[i-1] + fibo[i-2]) % 1234567;
}
answer = fibo[n];
return answer;
}
}
+ 비기너 문제
음양 더하기 (https://school.programmers.co.kr/learn/courses/30/lessons/76501)
+ 챌린저 문제
택배상자 (https://school.programmers.co.kr/learn/courses/30/lessons/131704)
728x90
반응형
'항해99 > 99club1기TIL' 카테고리의 다른 글
[99club/TIL] 2주차 - 목요일 TIL(Today I Learned) (2) | 2024.04.04 |
---|---|
[99club/TIL] 2주차 - 수요일 TIL(Today I Learned) (0) | 2024.04.03 |
[99club/TIL] 2주차 - 월요일 TIL(Today I Learned) (0) | 2024.04.01 |
[99club/TIL] 1주차 - 일요일 TIL(Today I Learned) (0) | 2024.03.31 |
[99club/TIL] 1주차 - 토요일 TIL(Today I Learned) (0) | 2024.03.30 |