이 문제는 입력 받은 숫자 만큼 문자열을 한글자씩 반복하여 붙이는 작업을 요구하는 문제이다. 그렇기 때문에 StringBuilder를 사용하면 아주 편리하다. StringBuilder에 대해 잘 모른다면 아래 자세히 설명해 놓았으니 참고바란다.

ckprk.tistory.com/21?category=957523

 

[자바] StringBuilder 사용하는 이유, 사용법, 함수(메소드) 정리

자바에서 String 하면 문자열이 떠오를 것이다. String str1 = "Hello"; String str2 = " World"; 라고 한다면 두개의 객체가 생성되어 각각 하나의 문자열을 가진다. 그리고 이 문자열을 더하는 행위를 했을 때

ckprk.tistory.com

아래는 내가 짠 코드이다 

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

public class Main {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		int n = Integer.parseInt(br.readLine());

		for(int t=0; t<n; t++) { //테스트케이스 수
			StringTokenizer st = new StringTokenizer(br.readLine());
			int r = Integer.parseInt(st.nextToken()); //r번 반복
			String str = st.nextToken(); //문자열
			StringBuilder sb = new StringBuilder(); //반복할 때마다 붙여넣기 위해 StringBuilder 사용

			for(int i=0; i<str.length(); i++) {
				for(int j=0; j<r; j++) {
					sb.append(str.charAt(i)); //문자열 첫번째자리부터 r번만큼 반복하여 sb에 붙여줘서 완성시키기
				}
			}
			bw.write(sb + "\n");
			bw.flush();
		}
	}
}

StringBuilder가 무엇인지, StringBuilder의 함수 append의 사용법을 알고 있다면 이 문제는 어렵지 않을 것이다.

 

반응형

+ Recent posts