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

ㅎㅅ님의 프로필 이미지
ㅎㅅ

작성한 질문수

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

2-A

2-a 방문처리차이

작성

·

268

0

http://boj.kr/e4c18d04514e406f88c1af0ce04953cb

 

http://boj.kr/04682590a73c47c992a3437b78c555d0

 

비슷한 조건인거같은데 한쪽은 통과하고 한쪽은 메모리초과네요 어째서죠?

 

답변 1

1

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

안녕하세요 ㅎㅅ님 ㅎㅎ


			if(a[ny][nx] == 0 || vis[ny][nx] == 1)continue;

이렇게 continue를 하고 있는데


			vis[ny][nx] = vis[y][x] + 1;

지금 보면 vis에는 1이 아닌 다른 값들이 들어갈 수 있죠?

이 때문에 방문한 정점을 다시 방문하는 일이 생겨서

결국 많은 정점을 방문하게 되고 이 때문에 메모리 초과가 뜨게 되는 것 같습니다.

 

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

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

감사합니다.

강사 큰돌 올림.


ㅎㅅ님의 프로필 이미지
ㅎㅅ

작성한 질문수

질문하기