WalkerJei's Lifelog

백준알고리즘 2444번 별 찍기 - 7 C# 본문

소프트웨어 개발/코딩테스트(기성 문제)

백준알고리즘 2444번 별 찍기 - 7 C#

WalkerJei 2025. 5. 16. 18:17

세부 정보

  • 사이트: 백준알고리즘
  • 번호: 2444
  • 문제명: 별 찍기 - 7
  • 언어: C#
  • 분류: 구현
  • 비고: 

 

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

 

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

 

출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

 

풀이

가운데를 기준으로 위쪽은 피라미드 모양으로, 아래쪽은 역피라미드 모양으로 출력한다.

Wirte()는 WriteLine()과 다르게 작성이 끝나도 줄바꿈이 없다.

class Star7
{
    static void Main(String[] args)
    {
        StreamReader sr = new StreamReader(Console.OpenStandardInput());
        StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());

        // 숫자 입력
        int n = Convert.ToInt32(sr.ReadLine());

        // 위쪽 피라미드 출력
        for (int i = 1; i <= n; i++)
        {
            // 공백 연속 출력
            sw.Write(new string(' ', n - i));
            // 별 출력 후 한 줄 띄운다
            sw.WriteLine(new string('*', 2 * i - 1));
        }

        // 아래쪽 역피라미드 출력
        for (int i = n - 1; i >= 1; i--)
        {
            // 공백 연속 출력
            sw.Write(new string(' ', n - i));
            // 별 출력 후 한 줄 띄운다
            sw.WriteLine(new string('*', 2 * i - 1));
        }

        sr.Close();
        sw.Close();
    }
}

 

후기

역시나 피드백을 받은 끝에 new string() 이런 용도로도 활용할 수 있음을 배웠다. 공식 암기에서 벗어나 참신한 응용으로 문제를 척척 풀어나가려면 무엇이 필요할지 궁금하다.