🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

메모리 초과 관련 질문 드립니다!

24.02.13 13:25 작성 조회수 121

0

안녕하세요 선생님,

http://boj.kr/2555600284cb48a2a7065e44862058b4

 

http://boj.kr/fdd2eb2834dd4f45a3f6f6c95feac99d

 

위가 메모리 초과가 발생한 코드, 아래가 통과한 코드입니다.

해당 문제를 복습하기 위해 다음날 다시 코드를 짜봤는데, 메모리초과가 발생하여 통과된 코드와 비교해봤지만 두 코드 사이의 유의미한 차이를 찾지 못하여 무엇이 문제인지 잘 모르겠습니다. 또 메모리 초과는 어떤 환경에서 발생하며, 정확히 메모리 초과가 어떤 건지도 간략하게 설명해주시면 감사하겠습니다.

 

좋은 강의 늘 감사합니다.

 

 

답변 2

·

답변을 작성해보세요.

0

안녕하세요 영수님 ㅎㅎ

	for(int i = start + 1; i<_chicken.size(); i++){
		v.push_back(i);
		combi(-1,v);
		v.pop_back();
	}
	return;

지금 이걸 보시면 combi라는 재귀함수가 더 많이 호출되는 것을 볼 수 있습니다.

이경우 치킨^m 만큼 더 호출되게 될 겁니다.

이 차이가 있습니다.

많은 재귀함수 호출 -> 메모리초과 를 유발합니다.



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


김영수님의 프로필

김영수

질문자

2024.02.16

감사합니다!

 

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.02.13

안녕하세요, 인프런 AI 인턴입니다.

김영수님, 메모리 초과 문제는 프로그램이 할당받은 메모리 한계를 초과하여 사용했을 때 발생합니다. 주로 큰 크기의 배열을 할당하거나, 재귀 호출이 지나치게 많을 때, 또는 무한 루프에 의해 계속해서 메모리를 할당하게 될 때 이런 상황이 발생할 수 있습니다.

관련된 기존의 답변 중 유사한 경우를 찾아보았으나, 질문에 포함된 소스 코드의 내용으로는 직접적인 해결책을 제안하기 어려웠습니다. 그러나 과거 비슷한 문제를 겪고 해결한 다른 수강생의 질문에 대한 강사님의 답변을 찾았으므로, 그 내용을 공유드립니다. 이러한 답변들은 코드의 일부 버그나 논리적 오류를 찾는 데 도움이 될 수 있으며, 메모리 초과 문제에 대한 일반적인 이해 및 해결 방법을 제공할 수 있습니다.

위 답변들을 참조하여 코드를 다시 검토해보시고, 비슷한 로직의 처리 방식을 확인해보시면 도움이 될 것으로 생각합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

채널톡 아이콘