1 minute read


Input
2
3 ABC
5 /HTP

Output
AAABBBCCC
/////HHHHHTTTTTPPPPP


문제 풀이

테스트케이스의 수를 T, T별로 반복할 횟수를 R, 주어진 문자열을 S, 새로운 문자열을 P라고 해보자. 여기서 테스트케이스만큼 입력받는 동안 S의 각 문자를 R번 반복한 P로 만들어 출력하면 된다.

먼저 T를 입력받고 T만큼 반복하며 입력받은 줄에서 R과 S를 추려낸다. 그리고 S의 각 문자별로 R만큼 반복하여 P를 만든다. str.repeat() 함수를 이용해 S의 각 문자별로 반복할 수 있도록 하였다.

1
2
3
4
5
6
7
8
9
10
11
for(int i=0; i<t; i++) {
    st = new StringTokenizer(br.readLine()); // 하나의 테스트케이스
    int r = Integer.parseInt(st.nextToken()); // 반복횟수 R
    String[] s = new String[r]; // 주어진 문자열 S 초기화
    s = st.nextToken().split(""); // S 값 정의
    
    for (int j=0; j<s.length; j++) {
        bw.write(s[j].repeat(r) + ""); // P 출력
    }
    bw.write("\n");
}


작성코드

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
import java.io.*;
import java.util.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int t = Integer.parseInt(br.readLine());
        StringTokenizer st;
        
        for(int i=0; i<t; i++) {
            st = new StringTokenizer(br.readLine());
            int r = Integer.parseInt(st.nextToken());
            String[] s = new String[r];
            s = st.nextToken().split("");
            
            for (int j=0; j<s.length; j++) {
                bw.write(s[j].repeat(r) + "");
            }
            bw.write("\n");
        }

        bw.flush();
        bw.close();
        br.close();
    }

}