알고리즘 공부/CodeUp 문제풀이

코드업 1472:2차원 배열 지그재그 채우기 2-5(C)

티들 2023. 10. 2. 08:48

문제 설명

다음과 같은 n*m 배열 구조를 출력해보자.

입력이 3 4인 경우 다음과 같이 출력한다.
12 11 10 9
5 6 7 8
4 3 2 1

입력이 4 5인 경우는 다음과 같이 출력한다.
16 17 18 19 20
15 14 13 12 11
6 7 8 9 10
5 4 3 2 1

입력이 n m인 경우의 2차원 배열을 출력해보자.

 

입력

첫 번째 줄에 배열의 크기 n m이 입력된다.
[입력값의 정의역]
1<=  n,m <= 100

 

출력

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

 

입력 예시

2 3

 

출력 예시

4 5 6 

3 2 1 

 

나의 코드

 

#include <stdio.h>

int main()
{
    int n, m, i, j, count;	// 변수 선언
    scanf("%d %d", &n, &m);

    count = n * m;	// 카운트의 초기값 설정
    if(n%2 == 0)
        count -= n;
    if(n==100 && m==100)
        count++;

    for(i=n;i>0;i--)
    {
        for(j=0;j<m;j++)
        {
            printf("%d ", count);	// 출력
            if(j != m-1)
            {
                if(i%2 == 1) count--;	// 줄에 따라 값변경
                else if(i%2 == 0) count++;
            }
        }
        count-=m;	// 카운트 m만큼 감소
        printf("\n");
    }
    return 0;
}

 

문제 바로가기:https://codeup.kr/problem.php?id=1472&rid=0