문제 설명
다음과 같은 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;
}
'알고리즘 공부 > CodeUp 문제풀이' 카테고리의 다른 글
코드업 2603:성적 그래프 출력하기(C) (0) | 2023.10.11 |
---|---|
코드업 2318:산딸기 정렬1(C) (0) | 2023.10.10 |
코드업 2634:거스름돈 II(C) (2) | 2023.10.07 |
코드업 3019:스케줄 정리(C) (2) | 2023.10.06 |
코드업 1405:숫자 로테이션(C) (2) | 2023.10.05 |