[BOJ] 2675 문자열 반복 (JAVA)

joyful·2021년 4월 9일
0

Algorithm

목록 보기
44/65

✅ 문제

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

✅ 예제 1

▼ 입력

2
3 ABC
5 /HTP

▼ 출력

AAABBBCCC
/////HHHHHTTTTTPPPPP

풀이

  • 입력받은 테스트 케이스 수만큼 반복문을 실행하며, 반복문 내에서 테스트 케이스를 입력받는다.
  • 입력받은 테스트 케이스를 각각 반복 횟수(r)와 문자열(s)로 분리하여 문자열의 모든 문자를 입력받은 횟수만큼 출력한다.

💻 코드 1

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.StringTokenizer;

public 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));
		StringTokenizer st;
		
		int t = Integer.parseInt(br.readLine());
		
		for(int i=0; i<t; i++) {
			st = new StringTokenizer(br.readLine());
			//토큰 분리
			int r = Integer.parseInt(st.nextToken());	// 반복횟수
			String s = st.nextToken();	// 문자열
			
			for(int j=0; j<s.length(); j++) {	// 문자열의 모든 문자를
				for(int k=0; k<r; k++) {	// 입력받은 횟수만큼 반복
					bw.write(s.charAt(j));	// 문자열의 문자를 출력
				}
			}
			bw.newLine();	// 테스트 케이스 하나 종료시 개행
		}
		bw.flush();
		bw.close();
	}
}

💻 코드 2

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.StringTokenizer;

public 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));
		StringTokenizer st;
		
		int t = Integer.parseInt(br.readLine());
		
		for(int i=0; i<t; i++) {
			st = new StringTokenizer(br.readLine());
			int r = Integer.parseInt(st.nextToken());
			String s = st.nextToken();
			String p = ""; // 새 문자열
			
			for(int j=0; j<s.length(); j++) {
				for(int k=0; k<r; k++) {
					p += s.charAt(j);	// 새 문자열에 문자 입력
				}
			}
			bw.write(p);	// 완성된 문자열 출력
			bw.newLine();
		}
		bw.flush();
		bw.close();
	}
}
profile
기쁘게 코딩하고 싶은 백엔드 개발자

0개의 댓글