[Java] 백준 2675번

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();
}
}