반응형
이번 문제는 C언어를 배우다보면 자주 나오는 달팽이 수열을 적는 것입니다. 일반적으로 왼쪽 위가 1의 자리이지만, 이번 수열은 가운데가 1의 자리입니다. 그래서 N은 홀수로 제한됩니다.
그냥 가운데부터 시작해서 차례차례 적어도 되고요. 숫자를 감소시키면서 거꾸로 적어나가도 됩니다. 저는 계산에 의해서 수열을 적었습니다. 굳이 이럴 이유는 하나도 없습니다. 성능상 이슈가 있는 것도 아니니까요.
제가 작성한 소스입니다. 소스는 참고용으로 봐주세요.
//------------------------------------------------
// baekjoon #1913
// - by Aubrey Choi
// - created at 2019-07-22
//------------------------------------------------
#include <stdio.h>
int main()
{
int n, m, v[1000][1000], sx, sy;
scanf("%d%d", &n, &m);
int c = n/2+1;
v[c][c] = 1;
for(int i = 1; i < n; i += 2)
{
c--;
for(int j = 1; j < i+2; j++)
{
v[c][c+j] = i*i+j;
v[c+j][c+i+1] = i*i+i+j+1;
v[c+i+1][c+i+1-j] = i*i+(i+1)*2+j;
v[c+i+1-j][c] = i*i+(i+1)*3+j;
}
}
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
if(v[i][j] == m) sy=i, sx=j;
printf("%d ", v[i][j]);
}
putchar('\n');
}
printf("%d %d\n", sy, sx);
}
728x90
'Programming > BOJ' 카테고리의 다른 글
[C/C++] 백준 #1915 가장 큰 정사각형(동적 계획법) (0) | 2022.11.03 |
---|---|
[Python, C/C++] 백준 #1914 하노이 탑(재귀 함수) (0) | 2022.11.03 |
[C/C++] 백준 #1912 연속합(탐욕 알고리즘) (0) | 2022.11.02 |
[C/C++] 백준 #1904 01타일(피보나치 수열) (0) | 2022.11.01 |
[C/C++] 백준 #1890 점프(동적 계획법) (0) | 2022.11.01 |
댓글