
1. 문제 풀이 아이디어
- 주어진 문자열을
n x n
크기의 정사각형으로 간주하고, 90도 회전하여 문제를 해결할 수 있다.
2. 나의 정답 코드
StreamReader sr = new(Console.OpenStandardInput());
StreamWriter sw = new(Console.OpenStandardOutput());
int t = int.Parse(sr.ReadLine());
for (int i = 0; i < t; i++)
{
string s = sr.ReadLine();
char[] result = new char[s.Length];
int n = (int)Math.Sqrt(s.Length);
for (int x = 0; x < n; x++)
{
for (int y = 0; y < n; y++)
{
result[x * n + y] = s[y * n + n - x - 1];
}
}
sw.WriteLine(result);
}
sr.Close();
sw.Close();
3. 정리
n = sqrt(문자열 길이)
를 계산하여 정사각형의 크기를 구한다.
- 2중
for
문을 사용하여 기존 위치(y, n - x - 1)
에서 회전 후 위치(x, y)
로 문자를 이동한다.
result
배열을 사용하여 변환된 문자열을 저장한 후 출력한다.
Share article