
기본버전.
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
int line = 2 * N - 1;
int minus = 0;
//line만큼 찍고 2씩 줄어들다가 1이 되는 순간 다시 2씩 증가하면서 line까지
for (int i = 1; i <= line; ++i) {
if (i<=line/2+1) {
for (int j = 0; j < line - minus; ++j) {
if (j < minus)
cout << " ";
else
cout << "*";
}
cout << endl;
minus += 1;
}
else {
for (int j = 0; j < 1 + minus; ++j) {
if (j < line - (1 + minus))
cout << " ";
else
cout << "*";
}
cout << endl;
minus += 1;
}
}
}
함수화 버전.
#include <iostream>
using namespace std;
int printUpside(int line) {
int minus = 0;
int decrement = 0;
for (int i = 1; i <= line / 2 + 1; ++i) {
decrement = line - minus;
for (int j = 0; j < decrement; ++j) {
if (j < minus)
cout << " ";
else
cout << "*";
}
cout << endl;
minus += 1;
}
return minus;
}
void printDownside(int line, int value) {
int plus = value;
int increment = 0;
for (int i = line / 2 + 1; i < line; ++i) {
increment = 1 + plus;
for (int j = 0; j < increment; ++j) {
if (j < line - increment)
cout << " ";
else
cout << "*";
}
cout << endl;
plus += 1;
}
}
int main() {
int N;
cin >> N;
int line = 2 * N - 1;
int value;
value = printUpside(line);
printDownside(line, value);
}
'백준 문제 풀이' 카테고리의 다른 글
| 2213번 트리의 독립집합 (0) | 2021.01.21 |
|---|---|
| 2533번 사회망 서비스 (SNS) (0) | 2021.01.18 |
| 11377번 열혈강호3 (0) | 2021.01.07 |
| 11376번 열혈강호2 (0) | 2021.01.07 |
| 백준 1920번 수 찾기 (0) | 2021.01.05 |