
1. 문제 풀이 아이디어
- 별 모양의 테두리를 출력하기 위해 2차원 배열을 사용하여 문제를 해결한다.
2. 나의 정답 코드
StreamReader reader = new StreamReader(Console.OpenStandardInput());
StreamWriter writer = new StreamWriter(Console.OpenStandardOutput());
int n = int.Parse(reader.ReadLine());
int size = 4 * (n - 1) + 1;
char[,] arr = new char[size, size];
for (int i = 0; i < n; i++)
{
int s = i * 2;
int e = size - s;
for (int j = s; j < e; j++)
{
arr[s, j] = '*';
arr[e - 1, j] = '*';
arr[j, s] = '*';
arr[j, e - 1] = '*';
}
}
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
writer.Write(arr[i, j] == '\0' ? ' ' : '*');
}
writer.WriteLine();
}
writer.Close();
reader.Close();
3. 정리
- 입력값
n
에 따라 배열 크기를4 * (n - 1) + 1
로 계산한다.
- 이중 반복문을 사용하여 각 단계마다 테두리를 별로 채운다.
- 배열의 나머지 부분은 공백으로 출력하여 원하는 패턴을 완성한다.
Share article