- toc {:toc}
๐ฆ2448: ๋ณ์ฐ๊ธฐ 11
[์๊ณ ๋ฆฌ์ฆ ํ์ด] ๊ฐ๋๊ท
Reviewed by Kade Kang (devkade12@gmail.com)
Reviewed:: 2024-02-17
๋ฌธ์ ํ์ธํ๊ธฐ
ํ์ด
- ๋ถํ ์ ๋ณต์ผ๋ก ํ์ดํ๋ค. ์
๋ ฅ์ด
๋ก ์ฃผ์ด์ง๊ณ , ์ด๋ฏธ์ง๋ ๋ฐ๋ณต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋ค๋ค. - ๊ทธ๋ฆผ์ 24๊ฐ ์ฃผ์ด์ง ๊ทธ๋ฆผ์ธ๋ฐ, ๋์ด๋ 24, ๋ฐ๋ณ์ 47์ด๋ค.
- ์ฆ, ๋์ด =
, ๋ฐ๋ณ = ์ด๋ค.
- ์ฆ, ๋์ด =
- ํฐ ์ผ๊ฐํ์ ์์ ์ผ๊ฐํ 3๊ฐ๋ก ๋๋๋ฉด ๋์ด๊ฐ 12, ๋ฐ๋ณ์ 23์ด ๋๋ค.
- ๋ 3๊ฐ๋ก ๋๋๋ฉด N=6 ์ผ ๋๊ฐ ๋๋ค.
- (y, x) = (0, 0) ์ด๋ผ ๊ฐ์ ํ๊ณ N=24์ธ ๊ทธ๋ฆผ์์ N=12๋ก ์ชผ๊ฐค ๋ 3๊ฐ์ ๋ณ์ผ๊ฐํ์ ์์์ ์ ๊ตฌํด์ ์ฌ๊ท์ ์ผ๋ก ํ๋ฉด ๋๋ค.
#include <iostream>
#define endl '\n'
using namespace std;
int N;
char tri[3][6] = {
" * ",
" * * ",
"*****"
};
char board[3100][6200];
void Input(){
cin >> N;
}
void Solution(int n, int y, int x){
if(n == 1){
for(int i=0; i<3; i++){
for(int j=0; j<5; j++){
board[y+i][x+j] = tri[i][j];
}
}
return;
}
Solution(n/2, y, x+3*n/2);
Solution(n/2, y+3*n/2, x);
Solution(n/2, y+3*n/2, x+3*n);
}
void Solve(){
for(int i=0; i<N; i++){
for(int j=0; j<2*N-1; j++){
if(board[i][j] != '*') cout << " ";
else cout << "*";
}
cout << endl;
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
Input();
Solution(N/3, 0, 0);
Solve();
return 0;
}