본문 바로가기

백준/C++

[Baekjoon/C++] 2446번 - 별 찍기 - 9

[백준] Baekjoon Online Judge

문제로 이동

 

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

 

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

 

출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

 


예제 입력 예제 출력
5 *********
 *******
  *****
   ***
    *
   ***
  *****
 *******
*********

풀이

#include <iostream>
using namespace std;

// 별과 공백을 규칙에 맞게 출력한다.
void printStar(int idx, int N) {
	for (int i = 0; i < idx; i++)
		printf(" ");

	for (int i = 0; i < N - (idx * 2); i++)
		printf("*");

	printf("\n");
}

int main() {
	int N;
	cin >> N;

	// 역삼각형
	for (int i = 0; i < N; i++)
		printStar(i, N * 2 - 1);

	// 삼각형
	for (int i = N - 2; i >= 0; i--) 
		printStar(i, N * 2 - 1);

	return 0;
}

먼저 역삼각형을 출력하고, 맨 윗 꼭짓점이 없는 삼각형을 출력했다.