모름

 

2675번: 문자열 반복

문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1

www.acmicpc.net

문제

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다.

QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다.

입력

첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 

출력

각 테스트 케이스에 대해 P를 출력한다.

 

코드

using System;
using System.Text;

namespace Backjoon_7_4_2675_repeatString {
    class Program {
        static void Main(string[] args)
        {
            int testCount = int.Parse(Console.ReadLine());

            StringBuilder output = new StringBuilder();

            for (int i = 0; i < testCount; i++)
            {
                string[] testCases = Console.ReadLine().Split(' ');
                int spellRepeatCount = int.Parse(testCases[0]);
                string testString = testCases[1];

                for (int j = 0; j < testString.Length; j++)
                {
                    output.Append(testString[j], spellRepeatCount);
                }

                output.Append("\n");
            }

            Console.WriteLine(output.ToString());
        }
    }
}

먼저 첫 번째로 testCount(테스트횟수)를 입력받습니다. 그리고 결과물 출력을 위한 스트링빌더 output(출력물)을 선언해줬습니다.

 

여기서 중요한 문제는 반복문은 다 제껴둬도됩니다.

 

예제입력과 출력을 보면 3 ABC → AAABBBCCC 로 입력받고 출력하는 그림을 볼 수 있습니다. 이 하나의 케이스를 우선해결하고 이후에 반복문을 덮어주면 훨씬 수월할듯합니다. 작은문제부터...

 

어쨌든 공백을 기준으로 테스트케이스의 조건이 주어지기 때문에 Split()을 통해 배열로 받아줬습니다. 이를 보기좋게 변수인 spellRepeatCount(철자반복횟수)testWord(테스트문자)로 나누어 다시 받아줍니다.

 

그리고 testWord의 문자 하나하나를 세가면서 철자를 반복해주면됩니다. StringBuilder의 Append()에는 string value를 repeat해주는 기능이 있습니다.

 

정상 출력 됩니다. 이상입니다.