본문 바로가기
C#/C# : Baekjoon

[백준] C# : 문자열 반복(2675번)

by TODAYCODE 2021. 11. 6.
반응형

백준 단계별로 풀어보기 7단계 4번문제

 

2675번: 문자열 반복

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

www.acmicpc.net

문제의 핵심

문자열을 가지고 놀 수 있는가?

 


"3 ABC"가 입력되면,

문자열 각각 하나씩을 숫자만큼 반복해주면 된다.

즉, AAABBBCCC를 출력해주면 되는 문제.

 

문자열은 + 기호를 사용해서 추가할 수 있으므로 이 부분을 잘 활용하면 된다.

for문을 돌리면 간단하게 해결할 수 있으나

3중 for문이 등장하는 매우 안좋은 구조이지만,

단순한 형태라서 시간초과없이 해결된것 같다.

 

그리고 문제에서 약간 이상한 부분이

S의 경우와 QR코드 관련해서 뜬금없이 등장하는데

이걸 무시하고 풀어도 해결이된다.. 뭐지..?

 

 

정답 코드

using System;

namespace backjoon
{
    class Program
    {
        static void Main(string[] args)
        {
        	// 답을 출력할 문자열 생성
            string answer = "";
            // 테스트 케이스 입력 받음
            int t = int.Parse(Console.ReadLine());
            
            // 테스트케이스의 숫자만큼 반복
            for (int i = 0; i < t; i++)
            {
            // 반복할 숫자와, 문자열을 공백기준으로 잘라서 배열에 넣음.
                string[] s = Console.ReadLine().Split();
                // 입력된 배열의 첫번째의 반복횟수를 따로 담아둠.
                int r = int.Parse(s[0]);
                
                // 입력된 문자열의 길이만큼 for문 반복
                for (int j = 0; j < s[1].Length; j++)
                {
                // 입력된 숫자만큼 반복
                    for (int k = 0; k < r; k++)
                    {
                        answer += s[1][j];
                    }
                }
                // 최종적으로 answer를 출력하고 다시 ""로 초기화함.
                Console.WriteLine(answer);
                answer = "";
            }
        }
    }

 

반응형

댓글