코딩테스트 (C#)

백준 2675 : 문자열 반복 - C# 풀이

UniCoti-sub 2024. 10. 24.
반응형

문제 사진

이번 문제는 약간 생각할 게 있는 듯 하면서도 쉬운 편이다.

나는 출력형식에서 잠깐 헤맸다. 아무튼 문제를 이해해보자.

 

첫줄에는 반복될 시행의 개수가 입력된다.

예제 입출력을 보면 "2"가 그 대상인데, 첫번째 줄 이후로

나오는 시행의 개수가 2개라는 뜻을 내포한다.

 

이제 시행에서는 입력 형식이 바뀐다.

"숫자 문자" 형식으로 나오는데, 문자의 각 글자를 숫자만큼 반복하면 된다.

예를 들어 "3 ABC" 라면 "AAABBBCCC"를 출력해주면 된다.

 

이렇게 되면 일단 첫 숫자를 기반으로 첫번째 for문,

for문 안에서 숫자와 문자를 변수에 저장하고 문자의 길이를

기반으로 for문, 한 글자씩 돌아가면서 안쪽에 마지막 for문으로 숫자만큼

반복해주면 될 것 같다.

 

using System;

namespace unicoti {
    class Program {
        static void Main(string[] args) {
            int.TryParse(Console.ReadLine()??"", out int num);
            
            for(int i = 0; i < num; i++) {
                string[] array = (Console.ReadLine()??"").Split(' ');
                int.TryParse(array[0], out int repeat);

                if(i != 0) Console.WriteLine("");
                
                for(int j = 0; j < array[1].Length; j++) {
                    for(int k = 0; k < repeat; k++) {
                        Console.Write(array[1][j]);
                    }
                }
            }
        }
    }
}

 

나는 이렇게 표현했다.

한 줄 빼고는 위에서 언급한 로직을 그대로 표현한것인데,

if(i != 0) Console.WriteLine(""); 이 그 대상이다.

형식을 맞춰주기 위해서 필요했던 작업이다.

 

아니면 string 변수를 추가해서 + 연산을 해준 다음

마지막에 한줄씩 출력해주는것도 나쁘지 않다만

나는 현 코드를 최대한 바꾸고 싶지 않아 저 한줄을 추가하는 방향으로 완성했다.


오늘의 느낀점)

Console.WriteLine("")이 가능하다는걸 알게되었다.

뭐 굳이 안될것도 없겠지만 줄바꿈이 필요할때 항상

출력할 문자까지 사용해서 저 코드를 사용했는데,

그냥 형식만 맞추면 되는 거라면 앞으로 저걸 유용하게 사용할 듯 싶다.


이상으로 도움이 되었길 바라며,

 

끝.

반응형

댓글