๋ฌธ์
์์ ๋ฅผ ๋ณด๊ณ ๊ท์น์ ์ ์ถํ ๋ค์ ๋ณ์ ์ฐ์ด ๋ณด์ธ์.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N(1 ≤ N ≤ 100)์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค๋ถํฐ ์ฐจ๋ก๋๋ก ๋ณ์ ์ถ๋ ฅํ๋ค.
ํ์ด
๊ท์น์ ๋์ ํ ๋ชจ๋ฅด๊ฒ ์ด์ ์ํ๋นํ ํ์ด ๋ณด๊ณ ๊ฒจ์ฐ ํ์๋ค.
1. ๋ณ์ ๊ฐ๋ก ์ธ๋ก ๊ธธ์ด๊ฐ 4n+3๊ฐ์ ๊ฐ์ง๋ค.
2. ์๋ก์ด ๋ณ์ ์์ ์์น๋ (+2, +2), ๊ฐ๋ก ์ธ๋ก ๊ธธ์ด๋ -4์ด๋ค.
์ฌ๊ทํจ์๋ฅผ ๋ง๋ค์ด ๋ณ ์ฐ๊ธฐ๋ฅผ ์ํํ๋ค.
1. ์ข ๋ฃ ์กฐ๊ฑด : width๊ฐ 1์ธ ๊ฒฝ์ฐ ๋ ์ด์ ๋์์ ์ํํ ์ ์๋ค. ๋ณ์ ํ๋ ์ฐ์ด์ฃผ๊ณ return(๊ฒ์์)
2. ์๋ก์ด ์ฌ๊ทํจ์ ํธ์ถ : ์์ ์์น (+2, +2), ๊ฐ๋ก ์ธ๋ก ๊ธธ์ด -4
3. ํ์ฌ ํธ์ถ๋ ๋ณ ์ฐ๊ธฐ : ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ๋ป์ด๋๊ฐ๋ ํ์์ด๋ค. (๋ ธ>์ด>ํ>๋ณด)
#include <iostream>
#include <vector>
using namespace std;
void makeStar(int x, int y, int width, vector<vector<char>> &star){
// ์ข
๋ฃ์กฐ๊ฑด
if (width == 1){
star[x][y] = '*';
return;
}
// ๊ฐ์ด๋ฐ ์์ ๋ณ ์์ฑ - index ์ด๋ : x, y ์ธ๋ฑ์ค๋ +2, width๋ -4
makeStar(x+2, y+2, width-4, star);
// ํ์ฌ ๋ณ ์ฑ์ฐ๊ธฐ
for (int i=x; i<x+width; i++)
star[i][y] = star[x][i] = star[x + width - 1][i] = star[i][y+width-1] = '*';
}
int main(){
int n;
cin >> n;
int width = 4*n - 3;
vector<vector<char>> star(width, vector<char>(width, ' '));
makeStar(0, 0, width, star);
for (int i=0; i<width; i++){
for (int j=0; j<width; j++)
cout << star[i][j];
cout << "\n";
}
}
'โจ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 11651๋ฒ: ์ขํ ์ ๋ ฌํ๊ธฐ2 (0) | 2022.07.02 |
---|---|
[๋ฐฑ์ค/C++] 11399๋ฒ: ATM (0) | 2022.07.01 |
[๋ฐฑ์ค/C++] 1946๋ฒ: ์ ์ ์ฌ์ (0) | 2022.06.28 |
[๋ฐฑ์ค/C++] 1431๋ฒ: ์๋ฆฌ์ผ ๋ฒํธ (0) | 2022.06.28 |
[๋ฐฑ์ค/C++] 1026๋ฒ: ๋ณด๋ฌผ (0) | 2022.06.26 |
๋๊ธ