Algorithm

[BaekJoon] 백준 알고리즘 2675번 / 문자열 반복

bkuk 2023. 2. 20. 18:24

문제

문자열 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를 출력한다.


접근방법

  • 테스트 케이스의 갯수를 변수 stringNumber 에 대입한다.
  • 테스트 케이스의 문자열 길이를 BufferedReader를 통해서 입력받는다. 이때, int형으로 받을 경우, 아스키 코드 값이 출력이 되므로, -48을 해준다.
  • 문자열을 입력받는다.
  • 이를 배열 strArray 에 대입하는데, trim() 메서드를 통해 양옆 공백을 제거하고, split()을 메서드를 통해 나눈다.
  • 3중 for문을 통해서 출력한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Number2675 {
	
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader( new InputStreamReader(System.in) );
		
		int stringNumber = Integer.parseInt( br.readLine() );
		
		for( int i = 0; i < stringNumber; i++ ) {
			String result = "";
			int stringLength =  br.read() - 48 ;
			String str = br.readLine();
			
			String[] strArray = str.trim().split("");
			for( int j = 0; j < strArray.length; j++ ) {
				for( int z = 0; z < stringLength; z++ ) {
					result += strArray[j];
				}
			}
			System.out.println( result );
		}
	}
}