[백준 2443] 별 찍기 - 6 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
공백과 별의 개수 규칙을 이용하여 역삼각형 형태의 별 모양을 출력하는 구현 문제입니다.
- 입력으로 정수
N
이 주어지며, 이는 별의 줄 수를 의미합니다. - 출력은 총
N
줄이며, 각 줄마다 앞쪽에 공백이 포함되고 이후 별이 이어집니다. - 첫 줄은 공백
0
개 + 별2 * N - 1
개, - 둘째 줄은 공백
1
개 + 별2 * (N - 1) - 1
개,… - 마지막 줄은 공백
N - 1
개 + 별1
개가 됩니다.
출력 형식에 맞춰 규칙적으로 줄을 구성해야 하며, 별 사이에는 공백이 없어야 합니다.
접근법
- 줄 번호를
i
라 했을 때,i
는N
부터1
까지 감소합니다. - 각 줄마다
- 공백의 개수는
N - i
개 - 별의 개수는
2 * i - 1
개
- 공백의 개수는
- 이를 반복문을 통해 출력하면 됩니다.
Code
[ C# ]
1
2
3
4
5
6
7
8
9
10
11
using System;
class Program {
static void Main() {
int n = int.Parse(Console.ReadLine());
for (int i = n; i > 0; i--) {
Console.Write(new string(' ', n - i));
Console.WriteLine(new string('*', 2 * i - 1));
}
}
}
[ C++ ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n; cin >> n;
for (int i = n; i > 0; i--) {
for (int j = i; j < n; j++) cout << " ";
for (int j = 0; j < 2 * i - 1; j++) cout << "*";
cout << "\n";
}
return 0;
}