코딩 테스트/백준

백준 - [단계별로 풀어보기 심화 1] 2444 별 찍기 -7

devrabbit22 2026. 3. 16. 04:24

더보기

별 찍기 문제는 기본적으로 공식을 외워두는 것이 편하다고 생각한다.

공백 = 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개 뒤에 별이 하나 출력된다. 

출력 결과