인프런 커뮤니티 질문&답변

황인성님의 프로필 이미지
황인성

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

3-J

3-J 질문있습니다.

작성

·

20

0

큐 자료형을 pair로 풀긴했는데 https://www.acmicpc.net/submit/14497/86181387 계속 메모리 초과가 나는데 이유를 모르겠습니다..https://www.acmicpc.net/submit/14497/86181412 큐 자료형을 바꿔도 똑같이 메모리 초과가 왜 나는 건가요??

답변 2

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 인성님 ㅎㅎ

해당 링크를 들어갔는데 아무것도 뜨지 않습니다 ㅠㅠ.0주차 질문하는 방법 보시고 다시 질문 부탁드립니다.

 

감사합니다.

0

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

메모리 초과 에러는 주로 프로그램이 필요한 메모리보다 더 많이 메모리를 사용할 때 발생합니다. 특히 큐를 사용할 때 메모리 초과가 발생할 수 있는 원인을 살펴보면 다음과 같습니다:

  1. 무한 Queue 증가: 큐에 데이터를 추가할 때 탈출 조건이 명확하지 않거나, 방문 체크를 하지 않아서 이미 방문한 노드를 다시 방문하게 되어 큐가 무한히 커질 수 있습니다.

  2. 비효율적인 방문 체크: 방문한 노드를 체크하지 않으면 같은 노드를 여러 번 큐에 추가하게 되어 불필요한 메모리를 사용하게 됩니다.

필요한 경우 다음과 같은 방법으로 문제를 해결해 보세요:

  • 방문 체크 배열 사용: 이미 방문한 노드를 체크하는 배열이나 데이터를 두어서 중복된 노드가 큐에 들어가지 않게 방지합니다.
  • 적절한 탈출 조건 설정: 목표 지점에 도달했을 때 큐 탐색을 중단하는 등의 탈출 조건을 확실하게 설정합니다.

관련해서 유사한 문제가 있었던 게시물을 참고하실 수 있습니다:

위 링크를 통해 여러 조언을 참고하시고, 인성님의 코드 내의 배열 사용법 및 방문 체크 여부를 철저히 검토하신 후에 다시 시도해 보시기 바랍니다.

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

황인성님의 프로필 이미지
황인성

작성한 질문수

질문하기