adfsfsf   3년 전

2.b가 앞에 있음으로 인해, 청소기는 동작을 할 때 왼쪽을 보고 2번의 시작으로 다시 돌아갑니다. 2번의 시작으로 돌아가면, 현재 자리에 대한 탐사를 다시 처음부터 실행합니다. 청소기는 방향 정보가 초기화되고, 따라서 오른쪽의 자리가 청소가 되었는지에 대한 정보를 잊게 됩니다. 왜냐하면 2번은 시작할 때 '현재 방향을 기준으로'라고 명시했으며, 이는 2번으로 돌아가면 '기준이 되는 방향'이 초기화 된다는 뜻이기 때문입니다. 따라서 2.c 혹은 2.d로 넘어가지 못하고 무한루프에 빠집니다. 하지만 2.b를 끝낸 후, 2.a로 돌아간다면 해당 정보를 아직 갖고 있기 때문에 카운트가 가능합니다.

만약 문제 의도가 사방을 먼저 확인한 후에 하나라도 비어 있으면 2.b로 가는 것이었다면 순서가 바뀌어야 한다고 봅니다. 또한 이게 의도가 아니면 위에서 적은 내용 때문에 무한루프가 생긴다고 생각합니다.

만약 문제 의도가 2.b를 한 번 볼 때마다 카운트를 해서 원래 방향을 체크하게 될 경우(원래 방향의 오른쪽을 보고 있을 경우) 2.c로 넘어가도록 하는 것이었다면 위에서 적은 것에 기반하여, 2번의 시작으로 넘어간다고 적으면 안 되었다고 생각합니다.

만약 이 모든 의문점에 대해 큰 문제가 안 보이신다고 생각하신다면 설명을 부탁드립니다.

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