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를 직접 사용해보았다.
좀 더 빠른 출력을 위해서 어떻게 코드를 만들어야 할까? 에 대한 고민을 해보았다.
» 제가 작성한 글의 내용중 잘못된 부분 및 수정해야 할 사항이 있으면 댓글로 말씀부탁드립니다.
확인 후 다시 공부하여 수정하도록 하겠습니다. 끝까지 읽어주셔서 감사합니다 !! 😀