반응형
출처: http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=767&sca=2020
Approach
- 영역을 2개로 나눕니다.
- 각 영역을 아래와 같이 숫자를 채워갑니다.
#include <stdio.h>
const int dx[] = {1, -1};
const int dy[] = {-1, 1};
int N, x, y, dir, val;
int map[101][101];
int main() {
// freopen("input.txt", "r", stdin);
scanf("%d", &N);
// 시작점
x = y = 1;
// 첫번째 영역
for (int i = 1; i <= N; ++i) {
map[x][y] = ++val;
for (int j = 1; j < i; ++j) {
// 대각선 방향
x = x + dx[dir];
y = y + dy[dir];
map[x][y] = ++val;
}
if (i % 2 == 0) {
if (i == N) x++;
else y++;
dir = 0;
}
else {
if (i == N) y++;
else x++;
dir = 1;
}
}
// 두번째 영역
for (int i = N - 1; i >= 1; --i) {
map[x][y] = ++val;
for (int j = 1; j < i; ++j) {
// 대각선 방향
x = x + dx[dir];
y = y + dy[dir];
map[x][y] = ++val;
}
if (i % 2 == 0) {
x++;
dir = 0;
}
else {
y++;
dir = 1;
}
}
for (int i = 1; i <= N; ++i) {
for (int j = 1; j <= N; ++j) {
printf("%d ", map[i][j]);
}
printf("\n");
}
}
반응형
'PS 문제 풀이 > Jungol' 카테고리의 다른 글
[Jungol] 정올 1337 달팽이 삼각형 (0) | 2021.03.17 |
---|---|
[Jungol] 정올 1641 숫자삼각형 (0) | 2021.03.17 |
[Jungol] 정올 1331 문자마름모 (0) | 2021.03.17 |
[Jungol] 정올 1009 각 자리수의 역과 합(Number Reverse) (0) | 2021.03.17 |
[Jungol] 정올 1692 곱셈 (0) | 2021.03.17 |
댓글