apicad0307   2년 전

후... 12시간째 뭐가 틀린지 보고 있는데 어디서 틀렸는지를 못찾겠네요

정답은 58, 59번째를 청소안하는데 제 풀이에서는 58번째 59번째도 청소를 해버리네요...ㅠㅠㅠ

재귀로 구성하였는데 return;을 만나도 함수가 안끝나는 것 같아서요...

고수님들 도와주세요...ㅠㅠㅠ

벽은 숫자 2로 만들었습니다.

sjin0704   2년 전

코드를 올리고 질문하실 땐 남들이 보기 편하게 코드를 짜거나 주석을 달아주세요.

다른 부분은 문제가 없는 것 같지만 robot함수에 문제가 있어 보입니다.

1. 로봇은 왼쪽을 탐색하다 공간이 있으면 그 방향으로 이동합니다.

하지만 위 코드의 for문에서는 로봇이 이동한 후에도 계속 루프가 돌기 때문에 로봇의 경로가 여러 개가 존재하게 될 가능성이 있습니다.

로봇이 공간을 탐색했다면 루프가 종료되어야 합니다.


2. 로봇이 이동하는 것에 성공을 했다면 뒤로 이동하지 않습니다.

하지만 위 흐름에서는 로봇의 이동 여부와 관계없이 for문이 종료되면 로봇을 뒤로 후진시키는 코드가 실행됩니다. 

로봇의 사방이 막혀있든 막혀있지 않던 뒤가 벽이 아니기만 한다면 후진이 되고 있다는 겁니다. 

로봇이 이동에 성공했다면 사방이 막혀있지 않다는 의미이므로 함수가 종료되어야 합니다.

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