백준 문제 풀이

몸풀기. 2446번 별 찍기9

란서 2021. 1. 5. 12:58

 

 

기본버전.

#include <iostream>

using namespace std;

int main() {
	int N;
	cin >> N;

	int line = 2 * N - 1;
	int minus = 0;
	//line만큼 찍고 2씩 줄어들다가 1이 되는 순간 다시 2씩 증가하면서 line까지

	for (int i = 1; i <= line; ++i) {

		if (i<=line/2+1) {
			for (int j = 0; j < line - minus; ++j) {
				if (j < minus)
					cout << " ";
				else 
					cout << "*";
			}
			cout << endl;
			minus += 1;
		}

		else {
			for (int j = 0; j < 1 + minus; ++j) {
				if (j < line - (1 + minus))
					cout << " ";
				else
					cout << "*";
			}
			cout << endl;
			minus += 1;
		}
	}

}

   

 

함수화 버전.

#include <iostream>

using namespace std;



int printUpside(int line) {
	int minus = 0;
	int decrement = 0;

	for (int i = 1; i <= line / 2 + 1; ++i) {
		decrement = line - minus;
		for (int j = 0; j < decrement; ++j) {
			if (j < minus)
				cout << " ";
			else
				cout << "*";
		}
		cout << endl;
		minus += 1;
	}
	return minus;
}


void printDownside(int line, int value) {
		int plus = value;
		int increment = 0;

		for (int i = line / 2 + 1; i < line; ++i) {
			increment = 1 + plus;
			for (int j = 0; j < increment; ++j) {
				if (j < line - increment)
					cout << " ";
				else
					cout << "*";
			}
			cout << endl;
			plus += 1;
		}
}


int main() {
	int N;
	cin >> N;

	int line = 2 * N - 1;
	int value;

	value = printUpside(line);
	printDownside(line, value);
}

 

 

'백준 문제 풀이' 카테고리의 다른 글

2213번 트리의 독립집합  (0) 2021.01.21
2533번 사회망 서비스 (SNS)  (0) 2021.01.18
11377번 열혈강호3  (0) 2021.01.07
11376번 열혈강호2  (0) 2021.01.07
백준 1920번 수 찾기  (0) 2021.01.05