Algorithm/Jungol (도형만들기1)

[1314] 문자사각형2

whereareyoung 2023. 9. 12. 13:42
 

 

문제

정사각형의 한 변의 길이 n을 입력받은 후 다음과 같은 문자로 된 정사각형 형태로 출력하는 프로그램을 작성하시오.

< 처리조건 > 

문자의 진행 순서는 왼쪽 위에서부터 아래쪽으로 ‘A'부터 차례대로 채워나가고 

다시 오른쪽 아래부터 위쪽으로 채워나가는 방법으로 아래 표와 같이 채워 넣는다.

'Z' 다음에는 다시 'A'부터 반복된다.

입력

정사각형 한 변의 길이 n(n의 범위는 1이상 100 이하의 정수)을 입력받는다.

출력

위의 형식과 같이 한변의 길이가 n인 문자 사각형을 출력한다. 문자 사이는 공백으로 구분하여 출력한다.


예제 입력

4

 

예제 출력

A H I P
B G J O
C F K N
D E L M


<입력의 설계>

- char 형 으로 바꿔주고 방식은 숫자 문제랑 비슷하게 처리하였다. 

 

<출력의 설계>

- 지그제그 형식이기 때문에 짝수 홀수줄에 따라 배열에 순서대로 ++ 을 하는 방식으로 지정된 값이 입력될 수 있게 하였다.  

- 이전 문자 문제와 같은 형식으로, 기본 i, j를 활용한 출력에서 행과 열만 바꾸어 주었다.  

 

제출답변

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
    int n;
    int i, j;
    char ch = 'A';
    int arr[100][100] = { 0 };

    scanf("%d", &n);
    if (n <= 100 && n > 0)
    {
        for (j = 0; j < n; j++)
        {
            if (j % 2 == 0)
            {
                for (i = 0; i < n; i++)
                {
                    arr[i][j] = ch++;
                    if (ch > 'Z') ch = 'A';
                }
            }
            else
            {
                for (i = n - 1; i >= 0; i--)
                {

                    arr[i][j] = ch++;
                    if (ch > 'Z') ch = 'A';
                }
            }
        }

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

    return 0;
}

'Algorithm > Jungol (도형만들기1)' 카테고리의 다른 글

[1339] 문자삼각형2  (0) 2023.09.12
[1338] 문자삼각형1  (0) 2023.09.12
[1307] 문자사각형1  (0) 2023.09.12
[2046] 숫자사각형4  (0) 2023.09.12
[1304] 숫자사각형3  (0) 2023.09.12