백준
백준 2444번 c#
대왕군
2024. 1. 15. 19:13
using System;
namespace Baekjoon
{
internal class Program
{
static void Main(string[] args)
{
//입력값 받아옴
int input = int.Parse(Console.ReadLine());
//기본 별 갯수 1로 지정
int star = 1;
//여기 설명에서 중간값은 출력줄의 중간의 의미함
//ex) 3을 입력했을때 0,1,2로 반복이 되면 중간값은 1임
//반복횟수는 input * 2 - 1회임
for (int i = 0; i < input * 2 - 1; i++)
{
//중간값 이전의 공백출력
if (i < input - 1)
{
for (int k = 0; k < input - (i + 1); k++)
{
Console.Write(" ");
}
}
//중간값 이후의 공백출력
else if (i > input - 1)
{
for (int k = -(input - (i + 1)); k > 0; k--)
{
Console.Write(" ");
}
}
if (input == 1)
{
//입력값 1일때 일부러 뛰어넘김
}
//첫번째 줄이 아니면서 input - 1값보다 i가 클때(즉, 중간값 아래일때)
//혹은 중간값일때
else if ((i != 0 && i < input - 1) || i == input - 1)
{
//그릴 별 개수 2 더함
star += 2;
}
//
else if (i > input - 1)
{
//그릴 별 개수 2 뺌
star -= 2;
}
//star 수만큼 별 그림
for (int k = 0; k < star; k++)
{
Console.Write("*");
}
//개행
Console.WriteLine();
}
}
}
}
본인이 알고리즘 문제 풀때 제일 싫어하는게 별찍기다.. 나한테 별찍기가 왜 이렇게 어려운지 모르겠다.
다른 블로그보니까 코드도 간결하고 짧던데 더 노력해야겠다.