
더보기
별 찍기 문제는 기본적으로 공식을 외워두는 것이 편하다고 생각한다.
공백 = N - i
별 = 2*i - 1
패턴 종류
피라미드
→ 위쪽 삼각형만 출력
다이아몬드
→ 위쪽 피라미드 + 아래쪽 역피라미드
역피라미드
→ 반복문을 반대로 진행
이 문제는 다이아몬드이기 때문에 위쪽 피라미드와 역피라미드를 합쳐서 구현하면 된다.
//백준 2444 별 찍기 - 7
int n = int.Parse(Console.ReadLine());
// 위쪽 피라미드 출력
for (int i = 1; i <= n; i++)
{
// 별 앞에 들어갈 공백 출력 (줄이 내려갈수록 공백 감소)
Console.Write(new string(' ', n - i));
// 별 출력 (1, 3, 5, 7 ...)
Console.WriteLine(new string('*', 2 * i - 1));
}
// 아래 피라미드 출력
// 가운데 줄은 이미 출력했기 때문에 n-1부터 시작
for (int i = n - 1; i >= 1; i--)
{
Console.Write(new string(' ', n - i));
// 별 출력 (점점 감소)
Console.WriteLine(new string('*', 2 * i - 1));
}
new string()을 사용한 이유는 문자를 원하는 개수만큼 반복해서 문자열을 만들기 위해 사용했다.
Console.WriteLine(new string(' ', 4) + "*");
위의 코드대로 출력을 하면 공백 4개 뒤에 별이 하나 출력된다.

'코딩 테스트 > 백준' 카테고리의 다른 글
| 백준 - [단계별로 풀어보기 심화 1] 2941 크로아티아 알파벳 (0) | 2026.03.17 |
|---|---|
| 백준 - [단계별로 풀어보기 심화 1] 1157 단어 공부 (0) | 2026.03.16 |
| 백준 - [단계별로 풀어보기 심화 1] 10988 팰린드롬인지 확인하기 (0) | 2026.03.15 |
| 백준 - [단계별로 풀어보기 심화 1] 3003 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2026.03.12 |
| 백준 - [단계별로 풀어보기 심화 1] 25083 새싹 (0) | 2026.03.12 |