일상
[c++] 백준 2444 본문
틀린 코드
#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++;
}
}
이 소스코드로 제출하였다.
'programming' 카테고리의 다른 글
[c++] 백준 2914: 크로아티아 알파벳 (0) | 2023.06.07 |
---|---|
[c++] 백준 1316: 그룹 단어 체커 (0) | 2023.06.06 |
[c++] 백준 1157 (0) | 2023.05.30 |
[c++] 백준 10988 (0) | 2023.05.25 |
[c++] 백준 10809 (0) | 2023.05.22 |
Comments