Notice
Recent Posts
Recent Comments
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
관리 메뉴

일상

[c++] 백준 2444 본문

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++;
	}	
}

이 소스코드로 제출하였다.

'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