๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœจ Algorithm

[๋ฐฑ์ค€/C++] 10994๋ฒˆ : ๋ณ„ ์ฐ๊ธฐ - 19

by nitronium102 2021. 9. 6.

๋ฌธ์ œ

์˜ˆ์ œ๋ฅผ ๋ณด๊ณ  ๊ทœ์น™์„ ์œ ์ถ”ํ•œ ๋’ค์— ๋ณ„์„ ์ฐ์–ด ๋ณด์„ธ์š”.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N(1 ≤ N ≤ 100)์ด ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋ณ„์„ ์ถœ๋ ฅํ•œ๋‹ค.

ํ’€์ด

์˜ˆ์ œ์—์„œ ์ค„ ๊ฐ„๊ฒฉ์ด ์ข€ ์ด์ƒํ•œ๋ฐ, ๊ฐ€๋กœ ์„ธ๋กœ๊ฐ€ ๋˜‘๊ฐ™์€ ์‚ฌ๊ฐํ˜•์ด๋‹ค....

์ด ๋ฌธ์ œ๋Š” ํ…Œ๋‘๋ฆฌ๋งŒ ์‹ ๊ฒฝ์“ฐ๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค!

01. ์‚ฌ๊ฐํ˜•์˜ ์™ผ์ชฝ ์ƒ๋‹จ ์ ์„ ์‹œ์ž‘ ์ขŒํ‘œ (0, 0)์œผ๋กœ ์žก๋Š”๋‹ค.

02. ๊ฝ‰ ์ฐฌ ํ…Œ๋‘๋ฆฌ์ธ ๋งจ ์œ„์™€ ๋งจ ์•„๋ž˜๋งŒ ๊ณ ๋ คํ•œ๋‹ค

- ๊ฐ€๋กœ) ๋งจ ์œ„, ๋งจ ์•„๋ž˜

- ์„ธ๋กœ) ๋งจ ์œ„, ๋งจ ์•„๋ž˜

๋‘ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด์ค€๋‹ค.

03. ๋๋‚˜๋ฉด x+2, y+2, n-1์„ ์ธ์ž๋กœ ๋„˜๊ฒจ์ค€๋‹ค. (์ด๊ฑด ์‚ฌ๊ฐํ˜•์„ ์ง์ ‘ ๊ทธ๋ ค๋ณด๋ฉด ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ„ด์ด๋‹ค)

#include <iostream>
using namespace std;
char star[400][400];


void solution(int x, int y, int n){
  int line = 4*(n-1);

  /* 4ms ๋Š๋ฆผ
  if (n==1){
    star[x][y] = '*';
    return;
  }*/
  if (n==0)
    return;
  for (int i=0; i<line+1; i++){
    for (int j=0; j<line+1; j++){
      // ๊ฝ‰ ์ฐฌ ๋ผ์ธ(๋งจ ์œ„, ์•„๋ž˜)
      // ํ–‰
      if (i==0 || i==line){
        star[x+i][y+j] = '*';
        continue;
      } 
      // ์—ด
      if (j==0 || j==line) {
        star[x+i][y+j] = '*';
        continue;
      }
      star[x+i][y+j] = ' ';
    }
  }
  solution(x+2, y+2, n-1);
}

int main(){
  int n, line;
  cin >> n;
  solution(0, 0, n);

  line = 4*(n-1);
  for (int i=0; i<line+1; i++){
    for (int j=0; j<line+1; j++){
      cout << star[i][j];
    }
    cout << "\n";
  }
}

๋Œ“๊ธ€