말 그대로 두 개의 함수를 이용해서 풀어야 하는 문제다. F1과 F2를 반복시켜 도달하면 끝! F1은 한칸 직진, 한칸 오른쪽으로 꺾고 F2를 호출하고, F2역시 한칸 직진, 한칸 왼쪽으로 꺾고 F1을 호출함. 두 개의 함수를 서로 호출하게끔 한다는 점이 재밌었다.
말랑말랑/Robozzle
아주 쉬운 문제는 아니다. F2, F3이 있는 만큼 어떤 함수를 어떻게 반복할 것인지가 관건이 된다. 두 칸 직진후 좌회전, 또는 우회전이 반복되는 구조라 다음과 같이 함수를 구성했다. F2: 직진 2번, 좌회전 한번 F3: 직진 2번, 우회전 한번 이게 유일한 답은 아니겠지만, 나는 이렇게 풀었다.
초록색 발판을 조건으로 삼아야 할 거 같은데 어떻게 문제를 풀지 고민이 되었다. 생각한 결론은, 한 칸을 가고 다음 칸이 초록색일 경우 90도 회전하기를 반복. 조금 많이 빙글빙글 돌긴 했는데 풀리긴 풀렸다. 아마 명령 3개 타일로 해결하려면 이 방법밖에 없지 않을까?
문제가 복잡해 보이지만 223번 문제 처럼 어렵게 생각할 필요 없다. 각 색깔의 발판이 어떤 위치에 있고, 어떤 역할을 하는지만 파악하면 쉽게 풀 수 있다. 아마 답은 이 방법 외에는 없을 것 같다. 초록색 발판은 다시 방향을 정반대로 바꿔주는 역할을, 빨간색 발판은 방향을 90도 전환하는 역할을 하고 있다. 반복을 조금 오래하긴 하지만 잘 풀린다.
처음 이 문제를 보면 구조가 복잡해 보여서 당황할 수 있다. 하지만 초록색과 빨간색 발판의 위치를 주의깊게 본다면 어렵지 않게 해결할 수 있을 것이다. 이 문제도 F2를 만들지 않아도 풀렸다. 초록색 발판일 때 방향을 180도 전환하고, 빨간색 발판일 때 90도 전환해 방향을 틀어 직진시키면 모든 칸을 순환할 수 있다.
빨간색 발판이 꺾이는 지점으로 빨간색 발판일 때 조건만 잘 써주면 된다. 한 가지 주의할 점은, 위쪽 빨간색 발판은 오른쪽으로 꺾어야 하지만, 아래쪽 빨간색 발판은 왼쪽으로 꺾어야 한다는 점. F2를 안써도 쉽게 풀 수 있었다.