이걸 C언어로 어떻게 짜야할까요?

redpig의 이미지

1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

2차원 배열을 이용해 이렇게 출력되도록 C로 짜야하는데요.
지금 몇시간째 머리를 쥐어뜯고 있는데 도저히 모르겠네요-_-;
단순히 각 배열요소에다 해당 숫자를 넣어서 출력하라는 건 아닐테고..
뭔가 알고리즘이 있을듯 한데요.

혹시 아시는분 힌트라도 부탁드립니다.

7339989b62a014c4ce6e31b3540bc7b5f06455024f22753f6235c935e8e5의 이미지

http://xper.org/wiki/seminar/SpiralArray

여기에 이 문제를 여러가지 방법으로 풀이해 놓은 게 있습니다.

hugeval의 이미지

1부터 16까지 시계방향으로 숫자가 점점 커지는 거네요

M.W.Park의 이미지

왠지 모를... 흥미를 느껴 풀어봤다는....
-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

fox9의 이미지

웬지 문제가 P모학원의 내용인듯 한 느낌이 듭니다 :)

clique의 이미지

gamdora의 이미지

정말 저 소스는 언제 봐도 대단해요.

jaeil172cm의 이미지