白駿2447
11309 ワード
私は自分で解決できないので、検索して、考えを確認して、自分で比較して実施しました.
ロジックはとっくに完了していますが、2 D配列の問題で時間がかかります.
既存のコードは次のとおりです.
この問題を解決するには、2 D配列定義セクションを末尾に長時間挿入した次のコードに置き換えます.
完全なコード
ロジックはとっくに完了していますが、2 D配列の問題で時間がかかります.
既存のコードは次のとおりです.
int N; cin << N;
arr[N][N] = {'*',}; // 또는 만든 후 fill 함수로 채움
問題はパラメータとして渡すことができず、プロセス中にchar*pArrを使用してコンパイルエラーがなく、結果は1つのスペースしかありません.この問題を解決するには、2 D配列定義セクションを末尾に長時間挿入した次のコードに置き換えます.
cin >> N;
char** arr = new char*[N];
for(int i=0; i<N; i++) {
arr[i] = new char[N];
}
fill(&arr[0][0], &arr[N-1][N], '*');
なぜか分かりませんが、この部分を学ぶ必要があると思います.完全なコード #include <iostream>
using namespace std;
int N;
int star(char** arr, int n){
if(n==1)
return 0;
star(arr, n/3);
for(int i=0; i<N; i++) {
for(int j=0; j<N; j++) {
if( (i / (n / 3)) % 3 == 1 && (j / (n / 3)) % 3 ==1) {
arr[i][j] = ' ';
}
}
}
return 0;
}
int main(void){
cin >> N;
char** arr = new char*[N];
for(int i=0; i<N; i++) {
arr[i] = new char[N];
}
fill(&arr[0][0], &arr[N-1][N], '*');
star(arr, N);
for(int i=0; i<N; i++) {
for(int j=0; j<N; j++) {
cout << arr[i][j];
}
cout << '\n';
}
return 0;
}
Reference
この問題について(白駿2447), 我々は、より多くの情報をここで見つけました
https://velog.io/@csct3456/백준-2447
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
#include <iostream>
using namespace std;
int N;
int star(char** arr, int n){
if(n==1)
return 0;
star(arr, n/3);
for(int i=0; i<N; i++) {
for(int j=0; j<N; j++) {
if( (i / (n / 3)) % 3 == 1 && (j / (n / 3)) % 3 ==1) {
arr[i][j] = ' ';
}
}
}
return 0;
}
int main(void){
cin >> N;
char** arr = new char*[N];
for(int i=0; i<N; i++) {
arr[i] = new char[N];
}
fill(&arr[0][0], &arr[N-1][N], '*');
star(arr, N);
for(int i=0; i<N; i++) {
for(int j=0; j<N; j++) {
cout << arr[i][j];
}
cout << '\n';
}
return 0;
}
Reference
この問題について(白駿2447), 我々は、より多くの情報をここで見つけました https://velog.io/@csct3456/백준-2447テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol