티스토리 뷰

문제 : https://www.acmicpc.net/problem/2675

 

2675번: 문자열 반복

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

www.acmicpc.net

 

[내가 생각한 내용]

문자열을 R(반복횟수)만큼 문자열의 각 문자만큼 for문으로 처리해주려고 했다.

 

내가 작성한 코드

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<queue>
using namespace std;


int main(int argc, char* argv[]) {

    int T, R[T];
    string str[T];
    string newStr[T];

    /** 반복할 횟수 T를 입력받는다  */
    cin >> T ;

    //문자열을 반복할 횟수 R과 입력받을 최초문자열
    for(int i=0; i<T; i++){
        cin >> R[i] >> str[i];
    }

    // 문자열을 R 만큼 반복하여 새로운 문자열을 만들
    for(int i=0; i<T; i++){ // 입력한 케이스만큼 for 문 실행
        for(int j=0; j<str[i].length(); j++){//각 문자열의 문자 갯수만큼 for문을 돌려서 R횟수만큼 append 실행

                newStr[i].append(R[i], str[i].at(j));

                cout << newStr[i] << endl;
        }
    }
    
    return 0;
}

결과

 

정답코드

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<queue>
using namespace std;


int main(int argc, char* argv[]) {

    int t;
    cin >> t;
    for(int i = 0;i < t;i++)
    {
        int repeat;
        string str;
        cin >> repeat >> str;

        for(int j = 0;j < str.length();j++)
        {
            for(int k = 0;k < repeat;k++)
            {
                cout << str[j];
            }
        }

        cout << endl;

    }
    return 0;

}

 

댓글