jdb4497   4년 전

이 문제를 재귀 함수를 이용하여 풀어보았습니다. 제출했을 때, '맞았습니다'를 받았는데 visual studio 2017에서 코드를 돌리면 829까지는 잘 돌아가나 830부터는 Stack overflow가 뜨고 돌아가지 않습니다. 

아래 캡쳐한 그림과 같이 뜨는데 혹시 이유가 뭔지 알 수 있을까요? 

4d368fe3-81cd-41e4-a00f-9e3db6180ae9

clrmt   4년 전

재귀함수 안에 n 배열이 있는 이유가 뭔가요?

jdb4497   4년 전

아 저건 원래 처음에 접근을 받을 정수를 문자열에 넣어서 해결하려고 선언했었습니다. 다르게 접근해서 지워야 했는데 까먹고 안지웠네요 ㅠㅠ 그냥 무시하셔도 되요 저 배열은..

clrmt   4년 전

재귀함수 내에 지역변수가 많아서 스택 오버플로우가 나옵니다. VS에서는 스택 크기가 1MB, 백준에서 64MB인 듯 합니다. 그래서 VS에서 1000B 재귀 함수를 약 1000번 호출하면 스택 오버플로우가 나옵니다.

jdb4497   4년 전

아 감사합니다. 이해 됐습니다. 재귀함수 내에 지역변수를 최소화 하는게 좋겠네요. 감사합니다.

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