https://www.acmicpc.net/problem/2675
2675번: 문자열 반복
문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다
www.acmicpc.net
풀이
1. Scanner + charAt()
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int T = in.nextInt();
for(int i = 0; i < T; i++) {
int R = in.nextInt();
String S = in.next(); //nextLine() 쓰면 에러 발생
//Scanner.nextLine(): 엔터값 입력 기준, 한줄 전부 읽음(공백까지 읽음)
//Scanner.next(): 공백 기준으로 하나의 문자열만 읽음
for(int j = 0; j < S.length(); j++) {
for(int k = 0; k < R; k++) { //R 만큼 반복 출력
System.out.print(S.charAt(j));
}
}
System.out.println();
}
}
}
2. BufferedReader + split() + charAt()
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));
int T = Integer.parseInt(br.readLine());
for(int i = 0; i < T; i++) {
String[] str = br.readLine().split(" "); // 공백 분리
int R = Integer.parseInt(str[0]); // String -> int
String S = str[1];
for(int j = 0; j < S.length(); j++) {
for(int k = 0; k < R; k++) {
System.out.print(S.charAt(j));
}
}
System.out.println();
}
}
}
3. BufferedReader + split() + getBytes()
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
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 1152번 : 단어의 개수 (0) | 2022.03.21 |
---|---|
[백준] 1157번 : 단어 공부 - Java (0) | 2022.03.18 |
[백준] 10809번 : 알파벳 찾기 (0) | 2022.03.16 |
[백준] 11720번 : 숫자의 합 - Java (0) | 2022.03.16 |
[백준] 11654번 : 아스키 코드 - Java (0) | 2022.03.16 |
댓글