반응형
문제
풀이
n=5일 때, 첫 번째 줄에서 별 1개, 공백 8개, 별 1개, 두 번째 줄에서 별 2개, 공백 6개, 별 2개로 별은 한 개씩 늘어나며, n번째 줄까지 공백은 두 개씩 줄어드는 것을 알 수 있다.
따라서, 첫 번째 줄부터 n 번째 줄까지의 for문은 다음과 같다.
for (int i = 1; i <= n; i++) {
for (int j = i; j > 0; j--) {
cout << "*";
}
for (int k = 2 * (n - i); k > 0; k--) {
cout << " ";
}
for (int l = i; l > 0; l--) {
cout << "*";
}
cout << endl;
}
n + 1번째 줄부터 2 X n - 1번째 줄까지는 반대로 별은 한 개씩 감소하며, 공백은 두 개씩 증가한다.
따라서, n + 1번째 줄부터 2 X n - 1번째 줄까지의 for문은 다음과 같다.
for (int i = n - 1; i > 0; i--) {
for (int j = i; j > 0; j--) {
cout << "*";
}
for (int k = 2 * (n - i); k > 0; k--) {
cout << " ";
}
for (int l = i; l > 0; l--) {
cout << "*";
}
cout << endl;
}
코드
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = i; j > 0; j--) {
cout << "*";
}
for (int k = 2 * (n - i); k > 0; k--) {
cout << " ";
}
for (int l = i; l > 0; l--) {
cout << "*";
}
cout << endl;
}
for (int i = n - 1; i > 0; i--) {
for (int j = i; j > 0; j--) {
cout << "*";
}
for (int k = 2 * (n - i); k > 0; k--) {
cout << " ";
}
for (int l = i; l > 0; l--) {
cout << "*";
}
cout << endl;
}
}
결과
반응형
'Programming > C++ - 백준' 카테고리의 다른 글
[백준] 2522번 : '별 찍기 -12' - (C++) (0) | 2023.04.19 |
---|---|
[백준] 2446번 : '별 찍기 -9' - (C++) (1) | 2023.04.19 |
[백준] 2444번 : '별 찍기 -7' - (C++) (0) | 2023.04.18 |
[백준] 2443번 : '별 찍기 -6' - (C++) (0) | 2023.04.18 |
[백준] 2442번 : '별 찍기 -5' - (C++) (0) | 2023.04.18 |
댓글