[백준] 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개의 *로 구성되어 있다.
'백준 > C++' 카테고리의 다른 글
[Baekjoon/C++] 11655번 - ROT13 (0) | 2025.03.29 |
---|---|
[Baekjoon/C++] 3058번 - 짝수를 찾아라 (0) | 2025.03.29 |
[Baekjoon/C++] 13460번 - 구슬 탈출 2 (0) | 2025.03.26 |
[Baekjoon/C++] 2935번 - 소음 (0) | 2025.03.26 |
[Baekjoon/C++] 14003번 - 가장 긴 증가하는 부분 수열 5 (0) | 2025.03.24 |