보관함

JUNGOL 실력키우기 도형만들기1 - 문자사각형1 | 문자사각형2

niamdank 2020. 1. 19. 09:38

기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다.

실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다.

 

이번 포스팅에서는 도형만들기1의 문자사각형 시리즈를 풀어보겠습니다.


1307 : 문자사각형1

 

이번 문제의 경우 2차원 배열을 사용하여 미리 데이터를 저장한 뒤 출력하면 쉽게 해결이 가능합니다.

입력의 최대 사이즈가 정해져 있기 때문에 미리 배열을 만들어 둘 수도 있지만 저는 동적 할당을 통해 2차원 배열을 만들어 진행해 봤습니다.

 

#include <iostream>

using namespace std;

int main(void)
{
    int n;
    cin >> n;

    char** arr = new char*[n];
    for (int i = 0; i < n; ++i)
    {
        arr[i] = new char[n];
    }

    char c = 'A';
    for (int i = n - 1; i >= 0; --i)
    {
        for (int j = n - 1; j >= 0; --j)
        {
            arr[j][i] = c++;
            if (c > 'Z')
                c = 'A';
        }
    }

    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
        {
            cout << arr[i][j] << ' ';
        }
        cout << endl;
    }

    for (int i = 0; i < n; ++i)
    {
        delete[] arr[i];
    }
    delete[] arr;
}

 

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=2071&sca=20

 

JUNGOL | 문자사각형1 > 문제은행

정사각형의 한 변의 길이 n을 입력받은 후 다음과 같은 문자로 된 정사각형 형태로 출력하는 프로그램을 작성하시오. < 처리조건 > 문자의 진행 순서는 맨 오른쪽 아래에서 위쪽으로 'A'부터 차례대로 채워나가는 방법으로 아래 표와 같이 왼쪽 위까지 채워 넣는다.  'Z' 다음에는 다시 'A'부터 반복된다. 정사각형 한 변의 길이 n(n의 범위는 1이상 100 이하의 정수)을 입력받는다. 위의 형식과 같이 한변의 길이가 n인 문자 사각형을 출력한다. 문자 사

www.jungol.co.kr

 

1314 : 문자사각형2

#include <iostream>

using namespace std;

int main(void)
{
    int n;
    cin >> n;

    char** arr = new char*[n];
    for (int i = 0; i < n; ++i)
    {
        arr[i] = new char[n];
    }

    char c = 'A';
    for (int i = 0; i < n; ++i)
    {
        if (i % 2 == 0)
        {
            for (int j = 0; j < n; ++j)
            {
                arr[j][i] = c++;
                if (c > 'Z')
                    c = 'A';
            }
        }
        else
        {
            for (int j = n - 1; j >= 0; --j)
            {
                arr[j][i] = c++;
                if (c > 'Z')
                    c = 'A';
            }
        }
    }

    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
        {
            cout << arr[i][j] << ' ';
        }
        cout << endl;
    }

    for (int i = 0; i < n; ++i)
    {
        delete[] arr[i];
    }
    delete[] arr;
}

 

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=2072&sca=20

 

JUNGOL | 문자사각형2 > 문제은행

정사각형의 한 변의 길이 n을 입력받은 후 다음과 같은 문자로 된 정사각형 형태로 출력하는 프로그램을 작성하시오. < 처리조건 > 문자의 진행 순서는 왼쪽 위에서부터 아래쪽으로 ‘A'부터 차례대로 채워나가고  다시 오른쪽 아래부터 위쪽으로 채워나가는 방법으로 아래 표와 같이 채워 넣는다. 'Z' 다음에는 다시 'A'부터 반복된다. 정사각형 한 변의 길이 n(n의 범위는 1이상 100 이하의 정수)을 입력받는다. 위의 형식과 같이 한변의 길이가 n인 숫자

www.jungol.co.kr