[2442]

 

<2442번: 해결방법>

지난 별찍기(1) 게시물에서 보여줬던 방식을 좀 더 응용한 것 뿐이다. (참고)

 

2439번, 2440번, 2441번 [별찍기 (1)]

dip_the_source 2439번, 2440번, 2441번 [별찍기 (1)] 본문 백준 (C++) 2439번, 2440번, 2441번 [별찍기 (1)] #fdd4ff 2020. 12. 31. 00:15 Prev 1 2 3 4 5 6 7 Next

source-coding.tistory.com

=>첫째 줄에선 N-1개의 여백 빈칸과 (2x1)-1개의 *을 포함한 칸 -> · · · · · -> N째 줄에선 0개의 여백 빈칸과 (2xN)-1개의 *을 포함한 칸  

 

<2442번: 소스코드>

#include <iostream>
using namespace std;
int main() {
    int x;
    cin >> x;
    for (int j = 1; j <= x; j++)
    {
        for (int i = x; i > j; i--)
        {
            cout << " ";
        }
        for (int k = 1; k <=(2 *j)-1; k++)
        {
            cout << "*";
        }
        cout << "\n";
    }
    return 0;
}

 

 

 

 

 

[2445]

 

<2445번: 해결방법>

첫째 줄에 1개의 *을 포함한 칸, (N-1개의 여백 빈칸)x2, 1개의 *을 포함한 칸

둘째 줄에 2개의 *을 포함한 칸, (N-2개의 여백 빈칸)x2, 2개의 *을 포함한 칸 

....

N째 줄에 N개의 *을 포함한 칸x2

N+1째 줄에 N-1개의 *을 포함한 칸, (1개의 여백 빈칸)x2, N-1개의 *을 포함한 칸

...

(Nx2)-1째 줄에 1개의 *을 포함한 칸, (N-1개의 여백빈칸)x2, 1개의 *을 포함한 칸

 

<2445번: 소스코드>

#include <iostream>
using namespace std;
int main() {
	int N;
	cin >> N;
	for (int i = 1; i <= N; i++) {

		for (int j = 1; j <= i; j++)
			cout << '*';
		for (int j = 1; j <= (N-i)*2; j++)
			cout << ' ';
		for (int j = 1; j <= i; j++)
			cout << '*';
		cout << '\n';
	}
	for (int i = 1; i < N; i++) {
		for (int j = 1; j <= N - i; j++)
			cout << '*';
		for (int j = 1; j <= 2 * i; j++)
			cout << ' ';
		for (int j = 1; j <= N - i; j++)
			cout << '*';
		cout << '\n';
	}

	return 0;
}

 

 

 

 

 

 

[2446]

 

<2446번: 해결방법>

첫째 줄에서 (N*2)-1개의 *을 포함한 칸

둘째 줄에서 1개의 여백을 포함한 칸, ((N-1)*2)-1개의 *을 포함한 칸, 1개의 여백을 포함한 칸

.....

N번 째 줄에서 N-1개의 여백을 포함한 칸, 1개의 *을 포함한 칸, N-1개의 여백을 포함한 칸

.....

(N*2)-1번 째 줄에서 (N*2)-1개의 *을 포함한 칸

 

 

<2446번: 소스코드>

#include <iostream>
using namespace std;
int main() {
	int N;
	cin >> N;
	for (int i = 0; i<N; i++) {
		for (int j =i; j >0; j--)
			cout << ' ';
		for (int k =1; k <= (2 * (N - i)) - 1; k++)
			cout << '*';
		cout << '\n';
	}
    for (int j = 2; j <=N; j++)
    {
		for (int i = N; i > j; i--)
		{
			cout << " ";
		}
        for (int k =1; k <= (2*j)-1; k++)
        { 
            cout << "*";
        }
        cout << "\n";
    }
	return 0;
}

 

 

 

 

[2522]

 

 

<2522번: 해결방법>

첫째 줄에서 N-1개의 여백 빈칸, 1개의 * 을 포함하는 칸

둘째 줄에서 N-2개의 여백 빈칸, 2개의 * 을 포함하는 칸

N째 줄에서 N개의 *을 포함하는 칸

....

(N*2)-1 째 줄에서 N-1개의 여백 빈칸, 1개의 *을 포함하는 칸

 

 

<2522번: 소스코드>

#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 << ' ';
		for (int j = 1; j <= i; j++)
			cout << '*';
		cout << '\n';
	}
	for (int i = 2; i <= N; i++) {
	for (int j =N-1; j >N-i; j--)
			cout << ' ';
	for (int j = N; j >= i; j--)
			cout << '*';
	cout << '\n';
	}
	return 0;
}