C++ 다이아몬드 패턴 만들기

C++Beginner
지금 연습하기

소개

이 실습에서는 별표 (*) 를 사용하여 다이아몬드 패턴을 출력하는 C++ 프로그램을 작성하는 방법을 배웁니다. 기초부터 시작하여 단계별로 프로그램을 구현해 보겠습니다.

사용자 입력 받기

먼저 다음 명령어를 사용하여 ~/project 디렉토리에 main.cpp라는 새 파일을 생성합니다.

touch ~/project/main.cpp

그 다음, 사용자로부터 출력할 다이아몬드의 행 수를 입력받는 코드를 작성합니다.

int rows;

cout << "Enter Diamond Star Pattern Row = ";
cin >> rows;

패턴 출력하기

패턴을 화면에 표시하기 위해 중첩 반복문을 사용합니다. 바깥쪽 반복문은 행의 개수를 제어하고, 안쪽 반복문은 별표 기호와 공백을 출력하는 역할을 합니다.

cout << "Diamond Star Pattern\n";

for (int i = 1; i <= rows; i++) {
    for (int j = 1; j <= rows - i; j++) {
        cout << " ";
    }

    for (int k = 1; k <= i * 2 - 1; k++) {
        cout << "*";
    }

    cout << "\n";
}

for (int i = rows - 1; i > 0; i--) {
    for (int j = 1; j <= rows - i; j++) {
        cout << " ";
    }

    for (int k = 1; k <= i * 2 - 1; k++) {
        cout << "*";
    }

    cout << "\n";
}

다이아몬드 형상을 그리기 위해 두 개의 큰 반복문 블록을 사용합니다. 먼저 다이아몬드의 윗부분을 그리는 것부터 시작합니다.

바깥쪽 반복문 (첫 번째 for 문) 은 다이아몬드의 각 행을 훑으며 진행됩니다. 이 바깥쪽 반복문 내부에는 두 개의 안쪽 반복문이 중첩되어 있습니다.

안쪽 반복문들은 각 행에 필요한 공백과 별표를 출력합니다.

  • 첫 번째 안쪽 반복문은 별표가 찍히기 전 적절한 개수의 공백을 출력하여 모양을 잡습니다.
  • 두 번째 안쪽 반복문은 실제 별표를 출력합니다.

윗부분이 완성되면 다이아몬드의 아랫부분을 그립니다. 윗부분과 유사한 로직을 사용하지만, 바깥쪽 반복문이 역순으로 카운트다운하며 줄어드는 방식으로 구현합니다.

코드를 컴파일하고 실행하려면 터미널에서 다음 명령어를 입력하세요.

g++ main.cpp -o main && ./main

전체 코드

다이아몬드 패턴 프로그램의 전체 소스 코드는 다음과 같습니다.

#include <iostream>
using namespace std;

int main()
{
    int rows;

    cout << "Enter Diamond Star Pattern Row = ";
    cin >> rows;

    cout << "Diamond Star Pattern\n";

    for (int i = 1; i <= rows; i++) {
        for (int j = 1; j <= rows - i; j++) {
            cout << " ";
        }

        for (int k = 1; k <= i * 2 - 1; k++) {
            cout << "*";
        }

        cout << "\n";
    }

    for (int i = rows - 1; i > 0; i--) {
        for (int j = 1; j <= rows - i; j++) {
            cout << " ";
        }

        for (int k = 1; k <= i * 2 - 1; k++) {
            cout << "*";
        }

        cout << "\n";
    }

    return 0;
}

요약

이 실습을 통해 별표 (*) 를 사용하여 다이아몬드 패턴을 출력하는 C++ 프로그램을 작성해 보았습니다. 중첩 반복문을 활용하여 복잡한 문양을 화면에 구현하는 원리를 익혔습니다. 사용자 입력을 받는 것부터 시작하여 단계별로 논리를 확장하며 완성된 C++ 프로그램을 만들어 보았습니다.