알고리즘/acmicpc 코드

[acmicpc] 백준 2446번: 별 찍기 - 9 (피라미드 출력하기)

ahdelron 2020. 4. 9. 16:29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#define MAX(a,b) ((a > b) ? a : b) 
 
void fnPrintPyramid(int start, int end
    int nOperator = 1, nGreaterSize = MAX(start, end); 
    if(start - end > 0) nOperator = -1
    for(int i = start; (i - end* nOperator <= 0; i += nOperator) 
    { 
        for(int j = 0; j < nGreaterSize - i; j++
        { 
            printf(" "); 
        } 
        for(int j = 0; j < 2 * i - 1; j++
        { 
            printf("*"); 
        } 
        printf("\n"); 
    } 
 
int main(void
    int nInput; 
    scanf("%d"&nInput); 
    if(nInput != 1
    { 
        fnPrintPyramid(nInput, 1); 
        fnPrintPyramid(2, nInput); 
    } 
    else 
    { 
        printf("*"); 
    } 
    return 0
}
cs

 

피라미드 응용 문제가 상당히 있었던 것 같아서, 시작점과 끝점만 알려주면 그대로 그려주는 피라미드 함수를 만들어 보았다. 조건을 바꿔주면 원하는 대로 작동하게 변경할 수 있을 것이다.

사용 예시)