728x90
반응형
문제
코드
#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
반응형
'PS, 언어 공부 > 알고리즘 문제풀이' 카테고리의 다른 글
[JAVA] 백준 온라인저지 9093 (0) | 2020.06.25 |
---|---|
[JAVA] 백준 온라인 저지 10828 (0) | 2020.06.25 |
[C++] 백준 온라인 저지 2438 (0) | 2020.05.14 |
[C++] 백준 온라인 저지 10818 (0) | 2020.05.14 |
[C++] 백준 온라인 저지 10951 (2) | 2020.04.18 |