티스토리 뷰

문제

문자열 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를 출력한다.

 

작성한 코드는 아래와 같다.

        //'테스트 케이스 개수' 입력 값을 int로 변환한다.
        int T = int.Parse(Console.ReadLine());
        
        //반복횟수와 문자열을 받을 변수 선언.
        //따로 사용해야 하기 때문
        int[] num = new int[T];
        string[] str = new string[T];
        
        //T만큼 '테스트 케이스' 입력받는 것을 반복.
        for(int i = 0; i < T; i++)
        {
            string input = Console.ReadLine();
            
            //입력받은 문자열을 공백을 기준으로 나눠서 저장.
            //그러면 inputSpit[0]엔 반복횟수가 [1]엔 문자열이 할당.
            string[] inputSplit = input.Split(' ');

            //'반복횟수'를 int로 변환하여 배열로 저장한다.
            num[i] = int.Parse(inputSplit[0]);
            //'문자열'을 배열로 저장.
            str[i] = inputSplit[1];
        }

        //테스트 케이스 개수만큼 순회.
        for (int l = 0; l < T; l++)
        {
        	//문자열의 스펠링을 한글자씩 배열로 저장.
            //Char는 문자 하나만 할당하는 형식이다.
            Char[] spell = str[l].ToCharArray();
            
            //문자열 하나 통째로 순회.
            for (int h = 0; h < str[l].Length; h++)
            {
                //한 글자 반복 출력.
                for(int k = 0; k < num[l]; k++)
                {
                Console.Write(spell[h]);
                }
                
            }
            
            //한 문자열 출력이 끝나면 한 줄 띈다.
            Console.Write("\n");
        }

 

오늘 배운 점

1) \n 한 줄 띄기.

2) ToCharArray 한글자씩 배열로 저장.

댓글