문제출처:https://www.acmicpc.net/problem/10992


별찍기의 난이도가 어려워질 때 마다 느끼는건데 행과 열의 변수값만으로도  풀 수 있는데

자꾸 제가 풀 때 마다 새로운 변수를 두고 풀려고한다는 것입니다.

반복문,조건문을 이루는 변수들을 사용하는 아이디어를 떠올리는게 중요한 것 같습니다.


주석 친 코드는 맨 마지막줄(별이 찍히는 행)을 제외하여 연산을하고 맨마지막 행만 따로 연산하는 풀이이고

두번 째 코드는 통째로 푼 방식입니다.

#include<iostream>
using namespace std;
int main()
{
	int i, j, n;
	cin >> n;
	for (int i = 0; i < n - 1; i++)
	{
		for (int j = i + 1; j < n; j++)
		{
			cout << " ";
		}
		cout << "*";
		for (int j = 0; j < i * 2 - 1; j++)
			cout << " ";
		if (i != 0)cout << "*";
		cout << endl;
	}
	for (int i = 0; i < n * 2 - 1; i++)
		cout << "*";
}


#include<iostream>
using namespace std;
int main()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n - i; j++)
		{
			cout << " ";
		}
		if (i == 1 || i == n)//이때는 n갯수만큼*출력
			for (int j = 1; j <= (i - 1) * 2 + 1; j++)
				cout << "*";
		else//1행or n행아닐 때
		{
			cout << "*";
			for (int j = 1; j <= (i - 1) * 2 - 1; j++)
			{
				cout << " ";
			}
			cout << "*";
		}
		cout << endl;
	}
}



+ Recent posts