hik3562   4년 전

  1. 현재 위치를 청소한다.
  2. 현재 위치에서 현재 방향을 기준으로 왼쪽방향부터 차례대로 탐색을 진행한다.
    1. 왼쪽 방향에 아직 청소하지 않은 공간이 존재한다면, 그 방향으로 회전한 다음 한 칸을 전진하고 1번부터 진행한다.
    2. 왼쪽 방향에 청소할 공간이 없다면, 그 방향으로 회전하고 2번으로 돌아간다.
    3. 네 방향 모두 청소가 이미 되어있거나 벽인 경우에는, 바라보는 방향을 유지한 채로 한 칸 후진을 하고 2번으로 돌아간다.
    4. 네 방향 모두 청소가 이미 되어있거나 벽이면서, 뒤쪽 방향이 벽이라 후진도 할 수 없는 경우에는 작동을 멈춘다.

문제에 있는 내용을 긁어 왔습니다. 

코드를 작성 도중에 2-b를 수행하고 `2번으로 돌아간다` 를 처리하는것에 대해서 고민하던 중
1번으로 수행하게끔 코드를 작성하여도 문제가 되지 않았습니다.

문제에 조건에 따르면 1번으로 돌아가게 되면 `현재 위치를 청소한다.` 가 되는데
2-b 수행 후 2번으로 돌아가면 `탐색`만 진행할뿐 청소 여부에 관계가 없습니다. 

이 관계에 대해서 제가 잘못 이해하고 있는 부분이 있을까요? 

djm03178   4년 전

후진을 했다는 건 그 이전에 그 칸으로부터 왔음을 의미하기 때문에 이미 청소가 되어있는 칸일 수밖에 없습니다.

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