반응형
● 문제 접근 과정
1. 해당 출력 화면은 5가 입력되었을 때 나오는 화면이다.
2. 총 줄을 9줄 (2*N-1)
3. 중간에 한 줄이 겹치고 나머지는 위아래 동일하다.
4. 띄어지는 부분은 앞 부분만 띄면 되고, 마지막 부분은 신경 쓸 필요 없이 줄을 바꿔주기만 하면 된다.
● 구현
#include <algorithm>
#include <iostream>
#include <string>
using namespace std;
int main() {
int N = 0;
cin >> N;
// 다이아몬드의 윗 부분을 출력
for (int i = 1; i <= N; i++) {
// 띄어지는 부분 출력
for (int j = N - i; j > 0; j--) {
cout << " ";
}
// 별을 출력
for (int j = 2 * i - 1; j > 0; j--) {
cout << "*";
}
// 줄 바꿈
cout << endl;
}
// 다이아몬드의 아랫 부분을 출력
for (int i = 1; i < N; i++) {
// 띄어지는 부분 출력
for (int j = 0; j < i; j++) {
cout << " ";
}
// 별을 출력
for (int j = 2 * (N - i) - 1; j > 0; j--) {
cout << "*";
}
// 줄 바꿈
cout << endl;
}
}
반응형