john6014   7년 전

고수 분들 태그하는 방법없나요? 누구 한명 콕찝어서 물어보고싶다 ㅠㅠ

메인 함수에서 A , B , C 라는 함수를 호출햇어요. 그런데 각 함수들은 자신을 계속 호출하는 재귀 함수입니다 ( 물론 종료 조건이 존재하고 정상적으로 반환되는 함수 )

제가 알기로는 함수는 호출되면 스택에 저장되엇다가 종료되는 순간 반환되는 걸로 압니다.

그러면 재귀를 통해 함수들이 호출되면 계속 스택에 쌓이다가 종료 조건에 걸려 하나씩 반환되는순간에는 모두 스택에서 사라지는거겟지요?

아래 코드를 조금 참조하자면 B 함수를 호출하기 위해서는 A 가 호출된 후 종료되고 나야한다는겁니다. 그러면 그 순간에 A 에 관련된 정보는 스택에서 아예 존재하지 않는걸로 아는데요.. 아닌가요??

위에 막 주저리 쓴게..  5639 번 문제를 풀면서 자꾸 런타임 에러때문에 고생햇는데.. 이게 재귀때문에 터지는거더라구요.. (물론 이방법보다 더쉬운방법이 있엇겟지만 전 멍청해서 안떠오름...)

배열이 겨우 10000인데 퀵정렬에 대한 재귀가 런타임에러다??? 제가 뭘 잘못 알고잇나요??

아래 코드에 제가 쓰는 퀵정렬 ( 재귀 ) 도 같이 첨부해놨습니다.


indioindio   7년 전

Sort가 런타임에러를 발생시키는 원인이 맞나요? 수 정렬하기에 작성하신 코드를 제출하였을때는 아무 문제없이 정렬이 됩니다. (물론 그 문제의 테스트케이스가 버그를 못 잡는 것일수도 있지만 그럴 가능성은 낮지 않을까 싶네요.)

john6014   7년 전

네 해당 코드를 그냥 C++ sort 함수로 변경하고 나니 맞앗다고 뜨더라구요

위에 제가 작성한 코드로 다른 정렬문제 및 여러문제들에 많이 사용햇는데 이때까지 아무런 문제가 없다가 갑자기 터져버려서 이건 맞춰도 멘붕...

indioindio   7년 전

사실 작성하신 코드가 정렬된 입력에는 재귀 깊이가 꽤 깊어질수도 있는데 만 개 정도로 런타임에러가 날지는 잘 모르겠네요. 한 번 테스트 해보겠습니다.

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