engus0927   2년 전

2차원 토마토 문제는 문제없이 맞추었는데 3차원 토마토 문제에서는 2%정도에서 메모리 초과 오류가 나네요...

혹시 이유가 짐작가시는 분이 계실까요? ㅠㅠ 도와주시면 정말로 감사드리겠습니다

마음에 걸리는 부분이 있다면

1. BFS에서 Queue를 활용하며 참조한 데이터가 삭제되지 않아서 난건 아닐지? (하지만 Shift를 사용하면 시간초과가 나서 코드의 방법으로 인덱스와 배열 길이를 저장해서 구현하였습니다)

2. 쓸데없이 안사용해도 될 변수가 정의 되었는지?

3. 그래프에 값 저장하는 부분에서 동 서 남 북 위 아래 일일히 체크 하는 코드가 혹시나 잘 못 된것 일지..?(문제가 된다면 시간복잡도에서 문제가 될 것 같은데 메모리 초과와는 관계가 없다고 판단됩니다)

입니다.. 하지만 아무리 생각해도 잘 모르겠네요

이유를 아시는 고수님들 답변 달아주시면 정말 감사드리겠습니다..!!!

nahwasa   2년 전

우선 소소하게 periodArray는 없앨 수 있어요. visited에 period까지 같이 기입하면 됩니다. (0이면 아직 방문 안한것, 방문했다면 period 기입)

메모리 터진게 제 생각엔 queue가 아니라 저 graph 때문에 터진 것 같습니다.

const dx = [-1, 1, 0, 0, 0, 0];
const dy = [0, 0, -1, 1, 0, 0];
const dz = [0, 0, 0, 0, -1, 1];

이런식으로 정의해서 그때그때 위치를 찾으면 훨씬 효율적이겠죠.

engus0927   2년 전

덕분에 해결했습니다!! 정말로 감사드려요 ㅠㅠ

그래프는 필요가 없는 부분이었네요 알려주셔서 감사드립니다!!

댓글을 작성하려면 로그인해야 합니다.