본문 바로가기
Programming/C++ - 백준

[백준] 2443번 : '별 찍기 -6' - (C++)

by 지구코드 2023. 4. 18.
반응형


문제


풀이

별 앞의 공백은 0, 1, ... , n으로 증가하는 것을 볼 수 있다. 
 
따라서, 공백을 출력하기 위한 for문은 아래와 같다.
 
for (int j = 0; j < i; j++) {
	cout << " ";
}

별의 개수는 첫 번째 줄에는 2 X N -1개, 두 번째 줄에는 2 X N -3개, ... , N 번째 줄에는 별 1개를 찍어야한다.
 
따라서, 별을 출력하기 위한 for문은 아래와 같다.
 
for (int k = 1; k <= (n * 2 - (i * 2 + 1)); k++) {
	cout << "*";
}

 

별 뒤의 공백은 따로 출력하지 않아도 되므로, for문 내에, 공백 출력을 위한 for문과 별 출력을 위한 for문 두 개를 만들면 된다.


코드

#include <iostream>
using namespace std;

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

	for (int i = 0; i < n; i++) {
		for (int j = 0; j < i; j++) {
			cout << " ";
		}

		for (int k = 1; k <= (n * 2 - (i * 2 + 1)); k++) {
			cout << "*";
		}

		cout << endl;
	}
}

결과

 

 

2443번: 별 찍기 - 6

첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다.

www.acmicpc.net

 

반응형

댓글