작성
·
50
0
http://boj.kr/f71714ff83054faba0d0ae7392f76c1b
해당 코드가 메모리 초과가 납니다. 그 이유를 알 수 있을까요?
답변 1
0
안녕하세요 kkim님ㅎㅎ
오랜만이네요. ㅎㅎ
이거 queue에 push 가 너무 많이 일어나서 그렇습니다.
if(x1 <= 0 && y1 <= 0 && z1 <= 0){
cout << cnt<< '\n';
return 0;
}
q.push({x1, y1, z1});
지금 보시면 방문처리도 안되어있기 때문에 방문한 정점도 -> 다시 방문 -> 불필요한 탐색을 반복 -> queue에 요소가 많이 push됨 -> 메모리 초과
라고 보시면 됩니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.