void Snailing(int* snail, int size)
{
int endOfSnail = size * size;
int point = -1;
int i = 1;
int jump = 1;
int turn = 0;
while (i <= endOfSnail) {
int next = jump * (1 + turn * (size - 1));
point += next;
for (int x = 0; x < size; x++)
{
*(snail + point) = i++;
if (*(snail + point + next) != 0 || ((point%size) + next) == size || (point + next) >= endOfSnail)
break;
point += next;
}
jump = (turn == 1) ? jump * -1 : jump * 1;
turn = (turn + 1) % 2;
}
}
1시간 반 가량 정말 머리를 싸매고 고민하면서 코딩했는데 해설을 보고 현탐이 와버렸습니다...
완전히 다른 스타일이라서 다른 분들이 참조하실 수 있도록 올려놓습니다..