[★2][백준10809번]문자열 반복 (JAVA)
카테고리: BKJN
태그: Algorithm Java Coding Test
[★2][백준10809번]문자열 반복 (JAVA)
10809번 문제 ☞ https://www.acmicpc.net/problem/10809
난이도 ☞ [★2]
숫자의 합
- 문제
- 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code “alphanumeric” 문자만 들어있다.
QR Code “alphanumeric” 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$%*+-./: 이다. - 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다.
-
각 테스트 케이스에 대해 P를 출력한다.
예제입력 예제출력 2
3 ABC
5 /HTPAAABBBCCC
/////HHHHHTTTTTPPPPP
- 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code “alphanumeric” 문자만 들어있다.
내가 푼 풀이
이번 문제는 중첩 for
문을 사용해야될 것인데 그 부분만 잘 작성해 놓는다면 크게 문제가 없을 것이다. 먼저 Scanner
방식이다.
[ 풀이 1 ]
메모리 :
17796KB
시간 :236ms
Scanner
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int T = s.nextInt();
for (int i = 0; i < T; i++) {
int R = s.nextInt();
String S = s.next();
for (int j = 0; j < S.length(); j++) {
for (int k = 0; k < R; k++) {
System.out.print(S.charAt(j)); // println()이 아님!!
}
}
System.out.println();
}
}
}
출력해주는 부분도 조금 중요하다. 중간에 나오는 출력구문은 println()
이 아닌 print()
이니 이 부분을 주의하여야 합니다.
[ 풀이 2 ]
메모리 :
14140KB
시간 :148ms
BufferedReader
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();
}
}
}
bufferedReader.readLine()
은 한 줄로 읽기 때문에 split()
이나 StringTokenizer
를 사용하여 숫자와 문자열 사이의 공백을 구분해주어야 한다. 여기서 분리된 문자는 int
형으로 변환을 위해 Integer.parseInt()
를 사용하여 String
->int
로 형변환을 해준다.
댓글 남기기