Computer/Algorithm

Daily Algorithm - 2차원 배열 빗금 채우기 3-2

kentakang 2018. 3. 25. 23:36
반응형

문제

다음과 같은 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차원 배열을 출력해보자.

입력

첫 번째 줄에 배열의 크기 n m이 입력된다.

[입력값의 정의역]

1 <= n, m <= 100

출력

n * m 크기의 배열을 설명과 같이 채워 출력한다.

예제 입력

2 3

예제 출력

1 2 4

3 5 6

풀이

#include <stdio.h>

int main()
{
int arr[100][100];
int n, m, num = 0;
scanf("%d %d", &n, &m);

for (int i = 0; i < (n * m); i++)
{
for (int j = 0; j < n; j++)
{
int k = i - j;

if (k >= 0 && k < m)
arr[j][k] = ++num;
}
}

for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
printf("%d ", arr[i][j]);
}

printf("\n");
}
}



문제 출처 : http://codeup.kr/JudgeOnline/problem.php?id=1477



반응형