okayoki2484   4년 전

배추밭에서 배추를 발견하면 그 배추가 포함되어있는 묶음을 찾기 위해 worm 함수를 실행하는데요,


배추의 좌표를 queue에 push하고,

while문을 돌면서 queue의 front에 있는 배추의 상하좌우를 체크하는데, 한번 체크한 배추는 다시 체크하지 않기 위해서 cnt+1(최소 2부터 시작...)을 저장하였습니다.

제가 궁금한 부분은, while문 시작 부분에 queue의 front에 있는 배추 위치에 cnt+1을 저장하는데,

상하좌우를 체크하면서 상하좌우의 배추들도 queue에 넣고, 결국 다시 while문을 돌면서 cnt+1을 저장하게될텐데

왜 queue에 push하면서 cnt+1을 저장해줘야 메모리 초과 오류가 나지 않는지입니다.

https://www.acmicpc.net/board/...를 참고하여

상하좌우를 체크하고 큐에 push하면서 area[][] = cnt+1; 코드를 추가하니 정답처리는 되었으나 이 코드를 추가해야 할 이유가 궁금합니다.

ho94949   4년 전

원본 게시글 덧글에 잘 있네요. 거리가 같을때는 방문을 두번 해서는 안됩니다.

okayoki2484   4년 전

잘 이해했습니다. 감사합니다!

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