이 문제는 문제에서 요구하는 순서에 따라 코딩하면 되는 시뮬레이션 문제이다.
문제만 읽어보면 아주 쉬운 문제이지만, 나는 어디서 잘못됐는지 한동안 풀지 못했었다.
아직 많이 미숙한 것 같다.
코드 상에서 눈여겨 볼 점은, 로봇의 작동 순서 중 2-2단계가 없다는 것이다.
코드에서 2번째 while문은 로봇이 네 방향을 모두 탐색하면서 청소를 하기 위한 while문이다.
30번째 줄을 보면 nextDir = (nextDir + 3) % 4 부분이 있는데,
로봇이 보고있는 현재 방향에서 왼쪽을 탐색하는 게 아니라, 탐색할 방향만을 계속해서 바꾸는 것을 알 수 있다.
(그리고 나중에 현재 로봇의 방향과 같다는 조건을 비교하면 네 방향을 모두 탐색했다는 뜻이 된다.)
이로써 2-2단계의 코드는 생략할 수 있다. (지극히 개인적인 풀이 방법이니 참고)
다른 사람의 코드를 보니
n, m의 input을 받을 때, 아래와 같이 입력을 받는걸 보니 다음에 시도해봐야겠다.
n, m = map(int, input().split())