강의

멘토링

커뮤니티

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

maple V님의 프로필 이미지
maple V

작성한 질문수

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

3-D와 반례

3-D 불! 메모리초과

작성

·

248

0

소스코드: http://boj.kr/057ac029ef1f4805bd46df65cf5474b5

제한 메모리는 256mb인데 어떤 부분에서 초과됐는지 궁금합니다.

dfs의 매개변수와 지역변수가 대략 int형으로 7개정도 있습니다(y, x, d, size, i, ny, nx). 그래서 한번 호출 시 스택에 쌓이는 메모리 용량은 대략 28바이트겠죠?

백만번째 호출 때 스택에 변수의 메모리 합이 28mb 밖에 되지 않는 것 같은데요. 어떻게 메모리 초과가 났을까요?

아 그리고 pair대신에 struct를 정의해 사용했는데 좋지 않은 방법일까요?

답변 1

1

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

안녕하세요 maple님 ㅎㅎ

struct : 괜찮습니다. / 근데 지훈이의 이동은 왜 dfs로 하신건가요? dfs로 했을 때 최단거리로 갈 수 있다가 자명한가요?

감사합니다.

maple V님의 프로필 이미지
maple V
질문자

처음에 최단거리는 생각 못하고 모든 경로 탐색이 먼저 떠올라서 시도했었습니다.

근데 메모리 초과가 아니라면 통과할 수 있었지 않을까 싶어서요 ㅎㅎ

해결) 불지를 때 visited를 기록하지 않고 있어서 queue가 비워지지 않아 메모리가 가득 찼습니다.

maple V님의 프로필 이미지
maple V

작성한 질문수

질문하기