백준/C++
[Baekjoon/C++] 10992번 - 별 찍기 - 17
베리._.
2025. 3. 27. 21:24
[백준] Baekjoon Online Judge
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
풀이
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int N;
cin >> N;
for (int i = 1; i < N; i++) {
// 좌측의 빈공간
for (int j = 0; j < N - i; j++) cout << ' ';
// 양끝에 *찍기
for (int j = 0; j < i * 2 - 1; j++) {
if (j == 0 || j == i * 2 - 2) cout << '*';
else cout << ' ';
}
cout << '\n';
}
// 삼각형의 밑면
for (int i = 0; i < N * 2 - 1; i++) cout << '*';
return 0;
}
출력해야 하는 답을 좌측의 빈공간, 양끝에 *이 있는 부분, 밑면 이렇게 3개로 나눠서 각 부분을 코드로 구현하였다.
좌측의 빈공간은 N - 1개의 빈칸으로 구성된 역삼각형이다.
양끝에 *이 있는 부분은 i번째 줄인 경우 i * 2 - 1개의 문자로 이루어져 있다.
삼각형의 밑면은 N * 2 - 1개의 *로 구성되어 있다.