import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//스캐너 선언
Scanner s = new Scanner(System.in);
//Test Case 개수
int T;
T = s.nextInt();
//입력 받을 String 배열 Test Case만큼 생성
String[] str = new String[T];
//배열 str을 변형하여 넣을 새로운 String 배열
String[] nstr = new String[T];
//nstr에 새로운 문자열이 삽입되기 전에 거쳐갈 char배열
char[][] charArray = new char[T][60];
//각 문자를 반복할 횟수
int R[] = new int[T];
//str배열의 각 문자열 길이
int len[] = new int[T];
//입력받기
for(int i=0; i<T; i++) {
R[i] = s.nextInt();
str[i] = s.next();
len[i] = str[i].length();
}
int count = 0;
//str배열을 한 글자씩 쪼개서 넣을 char배열
char[] split;
for(int i=0; i<T; i++) {
//String형식의 str배열을 charArray로 변환해서 split에 삽입
split = str[i].toCharArray();
for(int j=0; j<len[i]; j++) {
for(int l=0; l<R[i]; l++) {
//char 2차원 배열에다가 순서대로 R번 반복된 문자 split 삽입
charArray[i][count] = split[j];
count++;
}
}
//char인 2차원 배열에 들어있는 문자들 String형식으로 변환
nstr[i] = String.valueOf(charArray[i]);
}
for(int i=0; i<T; i++)
System.out.print(nstr[i]+"\n");
s.close();
}
}
<<Runtime ERROR>>
Java 문자열 Scanner
next() = 공백을 인식하지 못함
nextLine() = 공백을 인식해줌 (문장 전체를 입력 받아줌)
String 자르기 method
split()
substring()
형변환 method
toCharArray() = String to char
String.valueOf() = char to String
Arrays.toString() = char to String
효율적인 방법
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
for(int i=0; i<T; i++) {
String[] str = br.readLine().split(" ");
int R = Integer.parseInt(str[0]);
for(byte val : str[1].getBytes()) {
for(int j=0; j<R; j++) {
sb.append((char)val);
}
}
sb.append('\n');
}
System.out.print(sb);
}
}
BufferedReader : Scanner와 유사 (속도 : BufferedReader > Scanner)
입력받을 때 readline() method 사용
그러나 return값이 String값으로 고정되기 때문에 IOException을 사용하여 형변환 해줘야함
BufferedWriter : System.out.println()와 유사
InputStreamReader : 자바에서 가장 기본이 되는 입력 스트림 (<->OutputStream)
1. byte단위 데이터를 char단위 데이터로 처리할 수 있도록 변환
2. char배열로 데이터를 받을 수 있음
IOException : 예외가 발생할 수 있는 메서드에 IOException을 throw해줌
'JAVA' 카테고리의 다른 글
BAEKJOON(백준) Queue - 18258번 JAVA / PYTHON CODE (0) | 2023.01.27 |
---|---|
BAEKJOON(백준) Stack - 1874번 JAVA CODE (0) | 2023.01.26 |
BAEKJOON(백준) 문자열 - 1316번 JAVA CODE (0) | 2023.01.18 |
BAEKJOON(백준) 문자열 - 1152번 JAVA CODE (0) | 2023.01.13 |
BAEKJOON(백준) 문자열 - 1157번 JAVA CODE (0) | 2023.01.13 |