문제는 백준 사이트와 똑같으니, 해설부터 보셔도 됩니다.
문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다.
QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$%*+-./: 이다.
첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다.
각 테스트 케이스에 대해 P를 출력한다.
입력
2
3 ABC
5 /HTP
출력
AAABBBCCC
/////HHHHHTTTTTPPPPP
처음에 입력한 수(n)만큼 문자를 입력할 수 있기 때문에 배열(arr)에 넣어서 출력해야겠다고 생각했습니다. 그리고 n만큼 반복하는 for문 안에 반복 횟수 r, 반복할 문자열 s, 반복한 후 담아줄 문자열 p를 각각 입력 받거나, 초기화 시켜주고 s의 문자 하나하나에 접근하기 위해 s의 길이만큼 반복하는 for문, 그 안에 문자 하나가 정해졌으니 r만큼 반복하여 p에 추가해줄 for문. 마지막으로는 for each문을 사용해서 배열의 요소를 하나씩 출력합니다.
- 처음 입력한 수(n)만큼 배열(arr) 크기 지정
- n번 수행하는 for문에 반복 횟수 r, 반복할 문자열 s, 새 문자열 p를 선언
- s의 길이만큼 반복하여 문자 하나 접근 후, r번만큼 p에 추가해줌.
- 만들어진 p는 arr에 순차적으로 추가
- for each문을 사용하여 arr의 모든 요소 출력
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] arr = new String[n];
for (int i = 0; i < n; i++) {
int r = sc.nextInt();
String s = sc.next();
String p = "";
for (int j = 0; j < s.length(); j++) {
for (int k = 0; k < r; k++) {
p += s.charAt(j);
}
}
arr[i] = p;
}
for (String str : arr) {
System.out.println(str);
}
}
}