해결된 질문
작성
·
66
·
수정됨
답변 2
0
안녕하세요 ㅎㅎ
다운으로 풀 때 스택 오버플로우 난 경우가 있어
-> 어떤 코드인지 공유부탁드립니다.
디피 탑다운 혹은 재귀 호출을 사용하는 코드에서 재귀호출 댑스? 몇회까지 호출이 되는지 공유해 주실 수 있을까요?
(천번이었나.. 기억이 안나서..)
-> 음.. DP는 어차피 메모이제이션이 되기 때문에... 몇회가 중요하지 않습니다. 제가 몇번까지 된다 라고 얘기한 적은 없는 것 같습니다. ㅎㅎ
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
mhyim님께서 질문하신 내용은 DP의 탑다운 방식을 사용할 때 재귀 호출의 깊이가 어느 정도까지 허용되는지에 관한 것입니다. 이와 관련하여, 일반적으로 C++에서는 스택 메모리 제한이 존재하기 때문에 재귀 호출의 깊이가 깊어지면 스택 오버플로우가 발생할 수 있습니다.
일반적으로, C++의 기본적인 스택 메모리 제한은 약 1MB이며, 이는 재귀 호출의 깊이로는 보통 수천 번 정도의 호출을 감당할 수 있음을 의미합니다. 그러나, 이 숫자는 사용하는 컴퓨터의 환경이나 설정에 따라 달라질 수 있습니다. 만약 재귀 호출이 깊어질 가능성이 있다면, 이러한 환경적 제약을 고려하여 바텀업 방식을 사용하거나, 재귀를 반복문으로 대체하는 것도 좋은 방법입니다.
이에 대해 더 자세한 토론과 예시를 확인하시려면 다음의 유사한 질문들을 참고하시면 좋습니다:
탑다운dp와 버텀up dp에 대한 설명을 좀 더 알 수 있을까요?: 이 게시물에서는 탑다운 및 바텀업 방식에 대한 설명과 함께, 각 방식의 장단점 및 효율성에 대해 논의하고 있습니다. 특히 재귀 호출이 가지는 한계점에 대해 참고할 만한 내용이 있습니다.
DP 풀이방법에 있어 탑바텀, 바텀업 풀이 방식의 선택 방식: 이 링크에서 배우실 수 있듯이, 탑다운 방식의 한계와 함께 바텀업 방식을 선택하기 위한 기준에 대해서도 설명하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
혼동하게 해서 죄송합니다.
나중에 찾아봤는데 제가 완탐으로 풀어서 시간 초과가 난거였습니다..
신경 써주셔서 감사합니다!