1. 이 문제는 테스트 케이스의 개수가 T개 만큼 주어집니다.
2. T 테스트 케이스는 숫자 문자열로 이루어져 있습니다.
3. 문자열에 문자 하나당 숫자만큼의 반복을 해서 새로운 문자열 P를 만들어 내라는 문제입니다.
예제처럼 3 ABC가 들어오면 A3번 B3번 C3번 씩 해서 새로운 문자열
AAABBBCCC를 만들어내면 됩니다.
------------------------------------전체 코드------------------------------------
import java.util.Scanner;
class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
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++){
sb.append(s.charAt(j));
}
}
sb.append("\n");
}
System.out.println(sb.toString());
}
}
입력 - Scanner
출력 - StringBuilder
사용
테스트 케이스 개수를 받기위한 t 를 입력받습니다.
다중 반복문입니다.
테스트 케이스의 개수만큼 반복을 합니다.
테스트케이스에 입력되는 3 ABC를 받기 위한 변수는 r,s입니다.
3라는 반복되는 숫자를 r에 입력받습니다.
문자열 "ABC"를 받기위해 s에 입력받습니다.
그러면 r = 3 , s = "ABC"가 입력되었습니다.
문자열 s의 크기만큼 반복합니다. "ABC"이니 3번 반복합니다.
그 안에서 r만큼 또 반복합니다. r은 3이니 3번 반복됩니다.
그러면 우리는 AAABBBCCC를 만들기 위해서
A를 가져와야합니다. A는 문자열 s에 0번째 인덱스에 위치해있습니다.
순서대로 'B','C' 는 1번째 2번째에 위치해있습니다.
그러니 0.1.2가 순서대로 증가하는 j를 인덱스로 가져옵니다.
charAt()를 사용하여 해당하는 인덱스의 문자를 가져왔고 그 문자를 r만큼 반복해서 StringBuilder에 append해줍니다.
그러면 sb에는 "AAABBBCCC"가 입력됬습니다.
다음 테스트 케이스의 출력을 위해 추가해줍니다.
sb를 출력해줍니다.
예제대로 입출력됬습니다.
'알고리즘 with JAVA' 카테고리의 다른 글
백준 1152번 단어의 개수 - 자바 (0) | 2021.04.11 |
---|---|
백준 1157번 단어 공부 - 자바 (0) | 2021.04.09 |
백준 10809번 알파벳 찾기 - 자바 (0) | 2021.04.07 |
백준 11720번 숫자의합 - 자바 (0) | 2021.04.05 |
백준 11654번 아스키코드 - 자바 (0) | 2021.04.04 |