ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 10991
    정리 2020. 7. 10. 00:47

    # 시간초과

     

    #include <iostream>

    int GenBox(char**& _box, int _num) {

    _box = new char* [_num];
    for (int i = 0; i < (2 * _num) - 1; i++) {
    _box[i] = new char[2 * _num - 1];
    }

    for (int i = 0; i < _num; i++) {
    for (int j = 0; j < 2 * _num - 1; j++) {
    _box[i][j] = ' ';
    }
    }
    return 1;
    }

    int FreeMem(char**& _box, int _num) {
    for (int i = 0; i < 2 * _num - 1; i++) {
    _box[i] = nullptr;
    delete[] _box[i];
    }
    _box = nullptr;
    delete[] _box;

    return 1;
    }

    int PrintStar(char** _box, int _num) {
    for (int i = 0; i < _num; i++) {
    for (int j = 0; j < 2 * _num - 1; j++) {
    std::cout << _box[i][j];
    }
    std::cout << '\n';
    }
    return 1;
    }

    int GenStar(char**& _box, int _num, int _x, int _y) {
    if (_num == 1) {
    _box[_x][_y] = '*';
    return 1;
    }
    else {
    _box[_x][_y] = '*';
    GenStar(_box, _num - 1, _x + 1, _y + 1);
    GenStar(_box, _num - 1, _x + 1, _y - 1);
    return 1;
    }
    }

    int main(void) {
    char** box = nullptr;
    int num = -1;
    std::cin >> num;

    GenBox(box, num);
    GenStar(box, num, 0, (2 * num - 1) / 2);
    PrintStar(box, num);
    FreeMem(box, num);

    return 0;
    }

     

    # 성공

    #include <iostream>

    int PrintStar(int _num) {

    for (int i = 1; i < _num + 1; i++) {
    for (int j = i; j < _num; j++) {
    std::cout << ' ';
    }
    for (int k = 1; k < 2 * i; k++) {
    if (k % 2 == 1) {
    std::cout << '*';
    }
    else {
    std::cout << ' ';
    }
    }
    std::cout << '\n';
    }

    return 1;
    }

    int main(void) {
    int num = -1;
    std::cin >> num;
    PrintStar(num);

    return 0;
    }

    '정리' 카테고리의 다른 글

    백준 10993  (0) 2020.07.21
    백준 10992  (0) 2020.07.20
    백준 2448  (0) 2020.07.09
    백준 2447  (0) 2020.07.07
    백준 2443  (0) 2020.07.05
Designed by Tistory.