Algorithm

백준 2675번 JAVA (문자열 반복)

Geon_Ho 2023. 2. 25. 18:56

문제해설

해당 문제는 문자열을 목적에 맞게 처리하는 과정에서 반복문을 여러번 중첩하여 사용해야하는 문제이다.

먼저 메인 목적을 해결하기 위해서 반복문을 총 3번 사용하였다.

 

첫 반복문은 test case의 횟수를 시행하기 위한 반복문이고,

두번째 반복문은 문자열의 길이를 측정하고 각 자리의 문자마다 반복을 해주기 위한 반복문이고,

세번째 반복문은 각 문자를 원하는 만큼 반복출력하기 위한 반복문이다.

 

추가로 빠른 읽기 쓰기를 위해서 BufferedReader와 BufferedWriter를 사용하였다.

그리고 그때 그때 출력하기보다는 bw.append를 통해 버퍼에 쌓아둔 뒤

마지막에 결과값을 출력하는 형식으로 출력을 진행하였다.

결과코드

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

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());
        int R;
        String S;
        
        for (int i = 0; i < T; i++){
            st = new StringTokenizer(br.readLine());
            R = Integer.parseInt(st.nextToken());
            S = st.nextToken();
            for (int k = 0; k < S.length(); k++) {
                for (int j = 0; j < R; j++) {
                    bw.append(S.charAt(k));
                }
            }
            bw.append("\n");
            bw.flush();
        }
        bw.close();
    }
}

배운점

bw.append를 직접 사용해보았다.

좀 더 빠른 출력을 위해서 어떻게 코드를 만들어야 할까? 에 대한 고민을 해보았다.

 

 

»  제가 작성한 글의 내용중 잘못된 부분 및 수정해야 할 사항이 있으면 댓글로 말씀부탁드립니다.

확인 후 다시 공부하여 수정하도록 하겠습니다. 끝까지 읽어주셔서 감사합니다 !! 😀