알고리즘 풀이

[백준] 2675번: 문자열 반복 - java 풀이

코디드 2023. 6. 19. 15:57
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

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=0; k<R; k++) {
					sb.append(S.charAt(j));
				}
			}
			sb.append("\n");
		}
		
		System.out.println(sb);
	}
}

 

StringTokenizer 를 반복문 밖에 써서 java.util.NoSuchElementException 이 발생했다.

StringTokenizer st = new StringTokenizer(br.readLine());

이게 반복돼서 입력받은 횟수 만큼 실행되지 않고 한번만 실행되니 발생하는 문제였다. 몇달에 한번씩 StringTokenizer를 반복문 밖에 쓰는 실수를 되풀이한다. 주의해야겠다.

 

getByte() 로도 풀이가 가능한 문제다.