알고리즘 공부/CodeUp 문제풀이
코드업 기초 배열연습 1476:2차원 배열 빗금 채우기 3-1
티들
2023. 10. 8. 19:55
문제 설명
다음과 같은 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차원 배열을 출력해보자.
입력
첫 번째 줄에 배열의 크기 n m이 입력된다.
[입력값의 정의역]
1<= n,m <= 100
출력
n*m 크기의 배열을 설명과 같이 채워 출력한다.
입력 예시
2 3
출력 예시
1 3 5
2 4 6
나의 코드
#include <stdio.h>
int main()
{
int i, j, n, m, num = 1; // 변수 선언
int arr[100][100]; // 배열 선언
int max, min;
scanf("%d %d", &n, &m); // 입력받음
for (i=1;i<=n+m-1;i++)
{
// 시작 위치, 마지막 위치
min = (i <= n) ? i : n;
max = (i <= m) ? 1 : (i - m + 1);
// 대각선으로 num을 넣어주고 값 1씩 증가
for (j=min;j>=max;j--)
arr[j][i - j + 1] = num++;
}
// 출력
for (i = 1; i <= n; i++)
{
for (j = 1; j <= m; j++)
printf("%d ", arr[i][j]);
printf("\n");
}
return 0;
}