stajw   3년 전

런타임 에러가 지속적으로 떠서 재귀호출 부분을 반복문으로 바꿨더니 맞았다고 나옵니다

재귀호출이랑 반복문이랑 무슨 차이가 있길래 런타임 에러가 사라진건지 알려주시면 정말로 감사하겠습니다!!ㅠㅠ

jjangman821   3년 전

https://www.acmicpc.net/board/view/22980


제가 가장 많이 겪은 런타임에러는 두가지 경우였습니다.

1. 배열의 인덱스를 벗어난 범위를 참조할 때.

2. 재귀호출이 너무 깊어질 때.(return 조건을 제대로 걸어주지 않았을 때)


재귀호출 시 제대로 return 조건을 설정해주지 않으면 재귀함수가 스택에 무한대로 쌓이게 됩니다. 흔히 말하는 스택뻥이라는게 발생하는 것이죠.

이경우 무한대의 재귀호출에서 벗어나지 못하고 런타임에러가 발생합니다.

idiot   3년 전

solve 함수에서 문제가 발생합니다.

solve 함수내 70번째 72번째 줄을 보면 solve를 재귀 호출하는데, int를 리턴하는 함수임에도 불구하고 리턴값 없이 재귀호출을 하고 있습니다.

아래 소스와 같이 solve 부분을 수정시 소스가 통과합니다.

stajw   3년 전

와 많이 배워갑니다ㅜㅜㅜㅜ마지막 리턴 전까지 함수에서 리턴값 없이 호출만 지속적으로 깊게 하다보니 발생한 일이었군요ㅠㅠ

감사드려요 정말!!!

댓글을 작성하려면 로그인해야 합니다.