PS, 언어 공부/알고리즘 문제풀이

[C++] 백준 온라인 저지 10992

Emil :) 2020. 5. 16. 15:37
728x90
반응형

문제


 

https://www.acmicpc.net/problem/10992

 

코드


#include <iostream>
#include <string>
#include <vector>

using namespace std;
class solution {
public:
	solution();
};

solution::solution() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		for (int j = n; j > i; j--) {
			cout << ' ';
		} //별 찍기 전에 공백구간

		for (int k = 1; k <= 2 * i - 1; k++) {
			if (k == 1 || k == 2 * i - 1)
				cout << '*';
			//처음과 끝부분에만 별찍어주는 구간
			else if (i != n && k > 1 && k < 2 * i - 1)
				cout << ' ';

			//그 사이에 공백 넣어주는 구간, 이 때, 마지막 라인이 아니라는 조건이 붙어야함
			else
				cout << '*';

			//그 외엔 *만 해준다, 그러면 마지막 라인엔 *만 출력되게 된다
		}
		cout << '\n';

		//한번 하고 줄바꿈
	}
}


int main() {
	solution s;
}

다른 풀이들을 봤을땐 맨 위 따로, 맨 아래 따로 for문을 돌리는 걸 봤는데 아무래도 나는 한번에 처리하고 싶어서 이런식으로 짜 봤다. 재밌다!

 

 

결과


 

728x90
반응형