Notice
Recent Posts
Recent Comments
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Today
Total
Archives
관리 메뉴

cyphen156

백준-문자열 2675 문자열 반복 본문

컴퓨터공학/알고리듬 풀이

백준-문자열 2675 문자열 반복

cyphen156 2024. 9. 25. 09:53

2675번: 문자열 반복 (acmicpc.net)

 

문자열 S를 입력받고, 각 문자를 R번 반복해 새로운 문자열을 만들어 출력

abcde, 3 -> aaabbbcccdddeee

제약사항

  • 0 < Test T <= 1,000
  • 0 < S <= 20
  • 0 < R <= 8

주의 사항

없다.

C 풀이

문자열 반복_2675.c

C 코드는 배열에 저장하여 출력할 것이다.

3중첩 반복문사용

/**
* 백준 문자열 2675 문자열 반복
* 문자열 S를 입력받고, 각 문자를 R번 반복해 새로운 문자열을 만들어 출력
* abcde, 3 -> aaabbbcccdddeee
* C -> 배열 저장
* C++ -> 바로 출력
* 
* 
* 제한사항
*****************************************
* 0 < Test T <= 1,000                   *
* 0 < S <= 20                           *
* 0 < R <= 8                            *
*****************************************
*
*
*
* 주의
* 이스케이프 시퀀스 조심하기
* 
* 풀이시간 10분
*/

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
    int T;
    char str[21] = { 0 };

    scanf("%d", &T);

    for (int i = 0; i < T; ++i)
    {
        int R, idx = 0;
        scanf("%d %s", &R, str);
        int length = strlen(str);
        char* S = (char*)malloc((R * length + 1) * sizeof(char));
        for (int j = 0; j < length; ++j)
        {
            for (int k = 0; k < R; ++k)
            {
                S[idx] = str[j];
                ++idx;
            }
        }
        S[idx] = '\0';
        printf("%s\n", S);
        free(S);
    }

    return 0;
}

 

C++ 풀이

문자열 반복_2675.cpp

C++ 코드는 배열에 저장하지 않고 바로 반복하여 출력할 것이다. 

/**
* 백준 문자열 2675 문자열 반복
* 문자열 S를 입력받고, 각 문자를 R번 반복해 새로운 문자열을 만들어 출력
* abcde, 3 -> aaabbbcccdddeee
* 
* 
* 제한사항
*****************************************
* 0 < Test T <= 1,000                   *
* 0 < S <= 20                           *
* 0 < R <= 8                            *
*****************************************
*
*
*
* 주의
* 이스케이프 시퀀스 조심하기
* 
* 풀이시간 10분
*/

#include <iostream>
#include <string>

using namespace std;

int main()
{
    int T;

    cin >> T;
    for (int i = 0; i < T; ++i)
    {
        int R;
        string str;

        cin >> R >> str;

        for (int j = 0; j < str.length(); ++j)
        {
            for(int k = 0; k < R; ++k)
            {
                cout << str[j];
            }
        }
        cout << '\n';
    }
    return 0;
}

 

모든 예제 코드의 소스파일은 제 개인 깃허브 레포지토리 에 있습니다.

Workspace/알고리듬 풀이 at main · cyphen156/Workspace · GitHub

 

Workspace/알고리듬 풀이 at main · cyphen156/Workspace

Studying . Contribute to cyphen156/Workspace development by creating an account on GitHub.

github.com