programming
[c++] 백준 2444
Mysteryu
2023. 5. 31. 20:01
틀린 코드
#include <iostream>
int main() {
int N;
std::cin >> N;
//2N - 1
int out_size = 2 * N - 1;
int blank = out_size / 2;
int flag = 0;
for (int i = 0; i < out_size; i++) {
for (int j = 0; j < blank; j++) {
std::cout << " ";
}
for(int k = blank; k < out_size - blank; k++) {
std::cout << "*";
}
for (int h = out_size - blank; h < out_size; h++) {
std::cout << " ";
}
std::cout << "\n";
if (flag == 0) {
blank--;
if (blank == 0)
flag = 1;
}
else
blank++;
}
}
여기서 변수가 h인 반복문은 사실 필요 없는 문장이다. 왜냐하면 변수가 k인 반복문에서 별을 찍어준 후에는 굳이 공백을 출력하지 않아도 되기 때문이다. 따라서 이를 수정하면
#include <iostream>
int main() {
int N;
std::cin >> N;
//2N - 1
int out_size = 2 * N - 1;
int blank = out_size / 2;
int flag = 0;
for (int i = 0; i < out_size; i++) {
for (int j = 0; j < blank; j++) {
std::cout << " ";
}
for(int k = blank; k < out_size - blank; k++) {
std::cout << "*";
}
std::cout << "\n";
if (flag == 0) {
blank--;
if (blank == 0)
flag = 1;
}
else
blank++;
}
}
이 소스코드로 제출하였다.