프로그래머스Lv2 - 피보나치 수 - JAVA
본문 바로가기

알고리즘/프로그래머스

프로그래머스Lv2 - 피보나치 수 - JAVA

728x90
반응형

안녕하세요 놀이방 사장입니다.

 

이번 포스팅은 

프로그래머스 Lv2 문제

피보나치 수 입니다.

 

위에 빨간색으로 표시한 부분이 피보나치 로직입니다.

재귀함수나 반복문으로 구현할 수 있습니다.

 

저는 반복문으로 구현했습니다.

재귀함수로 구현하면 시간초과가 날 거 같아서 for문으로 했는데 7~14번에서 자꾸 오류가 나더라구요

 

그래서 뭔가.. 범위를 넘어가는 거 같아서 long형으로 바꿨는데도 오류가 나더라구요

 long형의 범위를 넘어가는 거 같더라구요

 

여기서 문제점은

이걸 해결하기 위해서는 계산하는 과정에서 나머지를 나눠줘야합니다.

 

그래서 정답처리된 코드가

class Solution {
    public int solution(int n) {
        int answer = 0;
        int n1 = 0;
        int n2 = 1;
        int n3 = 0;
        for(int i=2; i<n+1; i++){
            n3 = (n1 + n2)%1234567;
            n1 = n2;
            n2 = n3;
        }
        return answer = n3%1234567;
    }
}

이 코드입니다.

 

다른 사람 풀이보니깐 재귀로 푼 사람도 있고 다양하더라구요

제 풀이도 참조용으로 사용하시면 될 거 같습니다.

 

반응형