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

    [알고리즘 문제 풀기] String Transformations(5219)

    C#
    lhs's avatar
    lhs
    May 31, 2025
    [알고리즘 문제 풀기] String Transformations(5219)
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드 3. 정리
    www.acmicpc.net
    https://www.acmicpc.net/problem/5219
    notion image

    1. 문제 풀이 아이디어

    • 문자열을 for문으로 순회하며 첫 번째로 일치하는 문자만 변환해 문제를 해결할 수 있다.

    2. 나의 정답 코드

    using System.Text; StringBuilder sb = new StringBuilder(""); using (StreamReader sr = new StreamReader(Console.OpenStandardInput())) using (StreamWriter sw = new StreamWriter(Console.OpenStandardOutput())) { int n = int.Parse(sr.ReadLine()); while (n-- > 0) { string[] lhsrhs = sr.ReadLine().Trim().Split(); string[] split = sr.ReadLine().Trim().Split(); for (int i = 0; i < split.Length; i++) { for (int j = 0; j < lhsrhs.Length; j += 2) { for (int k = 0; k < split[i].Length; k++) { if (split[i][k] == lhsrhs[j][0]) { split[i] = split[i].Substring(0, k) + lhsrhs[j + 1] + split[i].Substring(k + 1); break; } } } } sb.AppendLine("Transformed strings: " + String.Join(" ", split)); } sw.Write(sb); }

    3. 정리

    • 각 단어(split[i])마다 모든 변환 쌍(lhsrhs[j])을 확인한다.
    • 변환 쌍의 문자 중 해당 단어에 포함된 문자가 있다면, 첫 번째로 일치하는 위치를 찾아 변환 후 문자로 한 번만 치환한다.
    • Substring(0, k) + 변환문자 + Substring(k + 1) 방식으로 해당 위치의 문자만 대체한다.
    • 모든 변환이 끝난 후 결과를 StringBuilder에 저장하고, 최종적으로 한 번에 출력해 문제를 해결한다.
    Share article
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드 3. 정리

    LHS's Study Space

    RSS·Powered by Inblog