본문 바로가기
백준

[백준] 2675번 : 문자열 반복 – JAVA [자바]

by Hongwoo 2022. 7. 7.
반응형

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

 

2675번: 문자열 반복

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 2675번 문자열 반복은 브론즈 2 난이도의 구현 및 문자열 문제이다. 이 문제는 우선 테스트 케이스 T가 입력으로 주어진다. 그리고 각 테스트 케이스마다 반복 횟수 R과 반복해야 하는 문자열 S가 공백으로 구분되어 주어진다. 주어진 문자열에서 각 문자마다 R번 반복한 것을 출력하면 된다. 예를 들어서 R = 3이고 문자열 S = ABC이면 답은 AAABBBCCC가 된다.

 

이 문제는 StringBuilder를 이용해서도 간단히 풀 수 있다. 이 문제에서도 charAt(index) 함수를 사용해서 각 문자를 얻는다. 그리고 for-loop을 돌려 StringBuilder에 문자를 R번 append 시켜주면 끝난다. 이렇게 하면 문자열에서 각 문자를 R번 반복시킨 StringBuilder를 얻게 되고 이 StringBuilder를 그대로 출력시켜 주면 된다.

 

자세한 코드는 밑에 있는 코드를 참고하면 되겠다.

 


  • 코드

 

import java.io.*;
import java.util.*;
public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int t = Integer.parseInt(br.readLine()); //테스트 케이스 개수
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < t; i++) {
            StringTokenizer 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 = 1; k <= r; k++) {
                    sb.append(s.charAt(j));  //StringBuilder에 캐릭터 r번 append시키기
                }
            }
            sb.append("\n");
        }
        System.out.print(sb);
    }
}

 

 

반응형

댓글