백준문제풀이 6단계 심화 1(3) 2444번 별 찍기 - 7 (C#)

2024. 5. 29. 20:00백준 문제풀이/6단계 심화 1

숫자를 하나 받고

정해진 규칙에 따라 별을 찍는 문제

 

만약 5를 입력한다면

이런 모양이 나와야 한다.

 

using System;

class BackJoon
{
    static void Main(string[] args)
    {
        int N = int.Parse(Console.ReadLine());
        for (int i = 0; i < N; i++)
        {
            for (int j = 0; j < N; j++)
            {
                if (j < N - i - 1)
                    Console.Write(" ");
                else
                {
                    for (int k = 0; k < i * 2 + 1; k++)
                    {
                        Console.Write("*");
                    }
                    break;
                }
            }
            Console.WriteLine();
        }
        N -= 1;
        for (int i = N; i > 0; i--)
        {
            for (int j = 0; j < N + 1; j++)
            {
                if (j < N - i + 1)
                    Console.Write(" ");
                else
                {
                    for (int k = 0; k < i * 2 - 1; k++)
                    {
                        Console.Write("*");
                    }
                    break;
                }
            }
            Console.WriteLine();
        }
    }
}

 

이전에 별찍기 문제와 비슷하다.

조금 다른점은 별을 찍는 방식이 별이 2씩 증가하고

최대치에서 다시 2씩 감소한다.

 

별로 좋은 방법은 아니지만 3중for문을 써서 이 문제를 풀었다.

사실 별찍기 문제는 별로 안좋아해서 여기서 더 수정을 포기했다...ㅋㅋ

그래도 역시 3중for문은 쓰면 안될듯...

 

이 글을 보시는 더 똑똑한 사람들은 3중for문 쓰지마세요!