강의로 돌아가기
유정

이건 왜 자꾸 결과값을 0으로 출력한다고 할까요? (코드 있음)

int v[100001];

int solution(int n) {
    if (n <= 2) return 1;

    if(v[n] != -1){
        return v[n];
    }

    v[n] = (solution(n-1) % 1234567 + solution(n-2) % 1234567) % 1234567;

    return v[n];
}

int main(){
    int n;

    scanf("%d", &n);

    for(int i=0;i<=100000;i++){
        v[i] = -1;
    }

    v[0] = 0;
    v[1] = 1;

    int result = solution(n);

    printf("%d\n", result);

    return 0;
}

테스트 케이스 넣어도 계속 결과값이 0이라고 뜹니다. 제 개발 환경에서는 정상적으로 출력하는데..

1 개의 답변
Demi

안녕하세요.
프로그래머스는 main 함수를 실행하지 않고, solution 함수를 실행합니다.
따라서,

v[0] = 0;
v[1] = 1;

코드가 실행되지 않아, 배열 v의 모든 원소는 0일겁니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.