본문 바로가기

알고리즘

[백준] 2675번: 문자열 반복(java, python)

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

 

2675번: 문자열 반복

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

www.acmicpc.net


💡주의 사항

첫번째 줄에는 몇 개의 문자를 받을건지 테스트 케이스의 개수 T를 입력받는다.

그 다음줄 부터는 R S 를 입력받는데, R은 각 문자를 몇 번 반복할지 나타내는 변수, S는 문자열을 입력받는다.


🗒 풀이

java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for (int i = 0; i < T; i++) {
            int R = sc.nextInt();
            String S = sc.next();
            for (int j = 0; j < S.length(); j++) {
                for (int k = 0; k < R; k++) {
                    System.out.print(S.charAt(j));
                }
            }
            System.out.println();
        }
    }
}
  • 몇 개의 문자열을 입력받을지 T를 우선 입력받는다
  • T 만큼 문자를 입력받기 위해 for문을 돌리고, 한계점은 T로 둔다.
  • R과 S를 각각 입력 받고, S의 길이만큼 for문을 다시 돌리고, 문자열 S의 각 자리의 문자를 R만큼 돌려서 출력한다

python

T = int(input())
for i in range(T):
    R, S = input().split()
    for j in range(len(S)):
        print(int(R) * S[j], end='')
    print()
  • 몇 개의 문자열을 입력받을지 T를 우선 입력받고, for문을 만드는데 범위는 T로 둔다
  • R, S를 입력받고 띄어쓰기로 각각의 값을 구분한다
  • 입력받은 문자열 S의 길이만큼 for문을 돌리고, 각 자리를 R만큼 반복 출력한다