inblog logo
|
LHS's Study Space
    알고리즘문제풀기C#

    [알고리즘 문제 풀기] 비밀 편지(5426)

    C#
    lhs's avatar
    lhs
    Feb 02, 2025
    [알고리즘 문제 풀기] 비밀 편지(5426)
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리
    www.acmicpc.net
    https://www.acmicpc.net/problem/5426
    notion image

    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

    LHS's Study Space

    RSS·Powered by Inblog