문제: https://www.acmicpc.net/problem/1913

N이 3일 때와 5일 때를 직접 그려보면 규칙성이 보인다.

해결 방법은 여러가지가 있겠지만, 나는 ↑, →, ↓, ← 를 하나의 사이클로 보고 해결하였다.

예를 들어 N = 5일 때

처음 시작하는 행과 열의 index는 2, 2이며 (0 Based)

첫 번째 사이클에서

↑ 1칸, → 1칸, ↓ 2칸, ← 2칸

두 번째 사이클에서

↑ 3칸, → 3칸, ↓ 4칸, ← 4칸

으로 움직이고 세 번째 사이클에서

↑ 4칸으로 가면서 끝나는 것으로 알 수 있다.


이것을 조금 일반화 하면 달팽이 배열의 끝은 항상 ↑에서 종료됨을 확인할 수 있기 때문에

↑ 반복문에서 달팽이 배열이 끝나는 지만 체크하면 된다.

소스 코드를 참고하세요. 소스 코드