본문 바로가기
Algorithm(CodeTree, C++)/2차원 배열

[코드트리] 격자로 사각형 만들기 C++

by kurooru 2024. 6. 2.

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

#include <iostream>
#include <string>
using namespace std;

void fill_square(int** square, int n)
{
    for (int i = 1; i < n; i++) {
        for (int j = 1; j < n; j++) {
            square[i][j] = square[i-1][j-1] + square[i][j-1] + square[i-1][j];
        }
    }
}

void set_square(int** square, int n) 
{
    for (int i = 0; i < n; i++) {
        square[i][0] = 1;
        square[0][i] = 1;
    }
}

int main() 
{
    
    // input
    int n;
    cin >> n;
    int** square = new int* [n];
    for (int i = 0; i < n; i++) {
        square[i] = new int [n] {0};
    }

    // set_square
    set_square(square, n);

    // fill_square
    fill_square(square, n);

    // print
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << square[i][j] << " ";
        }
        cout << endl;
    }

    // free memory
    for (int i = 0; i < n; i++) {
        delete[] square[i];
    }
    delete[] square;

    return 0;
}