본문 바로가기
알고리즘/백준

백준 2675번 - 문자열 반복 (Java 8)

by latissimus 2021. 11. 6.

https://www.acmicpc.net/problem/2675

 

2675번: 문자열 반복

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다

www.acmicpc.net

 

분류 : 단계별 문제 - 문자열

소요 시간 : 10분

 

실행 코드 :

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int caseNum = Integer.parseInt(br.readLine());
		ArrayList<String> answerList = new ArrayList<String>();
		
		for(int i=0; i<caseNum; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			String answer ="";
			int repeat = Integer.parseInt(st.nextToken());
			char[] arr = st.nextToken().toCharArray();
			
			for(int j=0; j<arr.length; j++) {
				for(int k=0; k<repeat; k++) {
						answer += arr[j];
					}
			}
			answerList.add(answer);
		}
			for(String ans : answerList) {
				System.out.println(ans);
			}
	}
}

풀이 과정 : 먼저 BufferedReader로 입력을 받아 readLine()을 통해 테스트 케이스의 개수(caseNum)를 입력받고, caseNum의 수 만큼 입력이 반복되도록 만들었다. 한 줄을 입력할때마다 출력시키면 각 케이스를 입력할때마다 출력이 나와버리기 때문에 answerList에 완성된 answer를 넣고, 반복문이 시작되기 전에 공백문자로 초기화시켜서 새로운 answer를 만들었다.

 

 

mvc 나 spring 배우느라 맨날 비슷한 코드를 치다보니 BufferedReader나 StringTokenizer를 치려는데 멈칫멈칫하게 되어 자괴감이 들었다. 앞으로 단계별 문제라도 틈틈히 풀어보아야겠다.

댓글