[백준/BOJ] 백준 2445번 : 별 찍기 - 8

2020. 8. 3. 01:11알고리즘 문제풀이

https://www.acmicpc.net/problem/2445

 

2445번: 별 찍기 - 8

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

www.acmicpc.net

n-1 개줄에 별, 빈칸, 별을 출력하고, 그다음 n개줄에 별,빈칸,별을 출력한다 처음 n-1 개줄을 출력할 때는 i 번 줄에 i+1개의 별을 출력하고, 2*(n-(i+1))개의 빈칸을 출력하고, i+1개의 별을 출력한다. 그다음 n개 줄을 출력할 때는 i 번 줄에 n-i개의 별을 출력하고, 2*i개의 빈칸을 출력하고, n-i개의 별을 출력한다.

 

코드

#include <iostream>
using namespace std;

int main()
{
	cin.tie(NULL);
	ios_base::sync_with_stdio(false);

	int n;

	cin >> n;

	//n-1개줄에 별,빈칸,별을 출력한다
	for (int i = 0; i < n - 1; i++)
	{
		//i번줄에 i+1개의 별을 출력한다
		for (int j = 0; j < i + 1; j++)
		{
			cout << "*";
		}

		//i번줄에 2*(n-(i+1))개의 빈칸을 출력한다
		for (int j = 0; j < 2 * (n - (i + 1)); j++)
		{
			cout << " ";
		}

		//i번줄에 i+1개의 별을 출력한다
		for (int j = 0; j < i + 1; j++)
		{
			cout << "*";
		}

		cout << "\n";
	}

	//n개줄에 별,빈칸,별을 출력한다
	for (int i = 0; i < n; i++)
	{
		//i번줄에 n-i개의 별을 출력한다
		for (int j = 0; j < n - i; j++)
		{
			cout << "*";
		}

		//i번줄에 2*i개의 빈칸을 출력한다
		for (int j = 0; j < 2 * i; j++)
		{
			cout << " ";
		}

		//i번줄에 n-i개의 별을 출력한다
		for (int j = 0; j < n - i; j++)
		{
			cout << "*";
		}

		cout << "\n";
	}

	return 0;
}