반응형
대각선(빗금) 채우기
알고리즘
KOISTUDY 1725
Background
다음과 같은 n*m 배열 구조를 출력해보자.
입력이 3 4인 경우 다음과 같이 출력한다.
1 3 6 9
2 5 8 11
4 7 10 12
입력이 4 5인 경우는 다음과 같이 출력한다.
1 3 6 10 14
2 5 9 13 17
4 8 12 16 19
7 11 15 18 20
입력이 n m인 경우의 2차원 배열을 출력해보자.
Input
첫 번째 줄에 배열의 크기 n, m이 공백을 두고 입력된다.
[입력값의 정의역]
1 <= n,m <= 100
Output
n*m 크기의 배열을 설명과 같이 채워 출력한다.
IO Example
입력1
1 3
출력1
1 2 3
입력2
2 3
출력2
1 3 5
2 4 6
int main() { int arr[100][100]; int n, m, num = 0; scanf("%d %d", &n, &m); for (int spin = 0; spin < n+m-1; spin++) { for (int x = 0; x < m; x++) { int y = spin - x; if (y >= 0 && y < n) { arr[y][x] = ++num; } } } for (int y = 0; y < n; y++) { for (int x = 0; x < m; x++) { printf("%d ", arr[y][x]); } printf("\n"); } }KOISTUDY 1726
Background
다음과 같은 n*m 배열 구조를 출력해보자.입력이 3 4인 경우 다음과 같이 출력한다.
1 2 4 7
3 5 8 10
6 9 11 12
입력이 4 5인 경우는 다음과 같이 출력한다.
1 2 4 7 11
3 5 8 12 15
6 9 13 16 18
10 14 17 19 20
입력이 n m인 경우의 2차원 배열을 출력해보자.
Input
첫 번째 줄에 배열의 크기 n, m이 공백을 두고 입력된다.[입력값의 정의역]
1 <= n,m <= 100
Output
n*m 크기의 배열을 설명과 같이 채워 출력한다.IO Example
입력11 3
출력1
1 2 3
입력2
2 3
출력2
1 2 4
3 5 6
int main() { int arr[100][100]; int n, m, num = 0; scanf("%d %d", &n, &m); for (int spin = 0; spin < n+m-1; spin++) { for (int x = 0; x < n; x++) { int y = spin - x; if (y >= 0 && y < m) { arr[x][y] = ++num; } } } for (int y = 0; y < n; y++) { for (int x = 0; x < m; x++) { printf("%d ", arr[y][x]); } printf("\n"); } }
KOISTUDY 1727
Background
다음과 같은 n*m 배열 구조를 출력해보자.입력이 3 4인 경우 다음과 같이 출력한다.
7 4 2 1
10 8 5 3
12 11 9 6
입력이 4 5인 경우는 다음과 같이 출력한다.
11 7 4 2 1
15 12 8 5 3
18 16 13 9 6
20 19 17 14 10
입력이 n m인 경우의 2차원 배열을 출력해보자.
Input
첫 번째 줄에 배열의 크기 n, m이 공백을 두고 입력된다.[입력값의 정의역]
1 <= n,m <= 100
Output
n*m 크기의 배열을 설명과 같이 채워 출력한다.IO Example
입력11 3
출력1
3 2 1
입력2
2 3
출력2
4 2 1
6 5 3
int main() int abs(int n) { if(n < 0) return n * -1; else return n; } int main() { int arr[100][100]; int n, m, num = 0; scanf("%d %d", &n, &m); for (int spin = 0; spin < n+m-1; spin++) { for (int x = 0; x < n; x++) { int y = spin - x; if (y >= 0 && y < m) { arr[x][abs(y-m)-1] = ++num; } } } for (int y = 0; y < n; y++) { for (int x = 0; x < m; x++) { printf("%d ", arr[y][x]); } printf("\n"); } }
반응형