<aside>
💡 Notion 팁: 새 페이지를 만들고 템플릿 목록에서 데일리 일기
를 선택해 매일 아래 양식을 자동으로 생성할 수 있어요.
</aside>
public class Solution {
public int solution(int n) {
int answer = 0;
if (n <= 1) {
return n;
}
int prev = 0;
int current = 1;
for (int i = 2; i <= n; i++) {
int temp = current % 1234567;
current = prev + current % 1234567;
prev = temp % 1234567;
}
answer = current;
return answer % 1234567;
}
}
피보나치 수 문제를 간단하게 풀었다고 생각했는데, 제출해보니 7부터 끝까지의 테스트케이스에서 틀렸다고 뜬다.
자료형의 크기에 제한이 있는 언어를 쓸 경우 (A + B) % C ≡ ( ( A % C ) + ( B % C) ) % C라는 성질을 이용해서 매번 계산 결과에 1234567으로 나눈 나머지를 대신 넣는 것으로 int 범위 내에 항상 값이 존재함을 보장할 수 있다.
(A + B) % C ≡ ( ( A % C ) + ( B % C) ) % C는 모듈러 연산이라고 하는데, 이렇게 하면 결과값이 1234567보다 작아지므로 int 범위 내에 값이 존재하게 된다.
(라는 힌트를 질문하기 탭에서 얻어 해결했다.)
지금 4단계쪽 문제를 풀고 있는데, 뭔가 갈수록 구현할 로직 자체는 어렵지 않지만 시간복잡도나 자료형을 고려해야 하는 문제가 많아지는 것 같다. 🤔
해야 할 일들
UI쪽 마무리
데이터 매니저도 만들어야 함