반응형

 

● 문제 접근 과정

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;
  }
}

 

 

반응형

+ Recent posts