BOJ 2675
2020-01-26
위 문제는 백준 사이트의 알고리즘 2675 문제에 관한 설명입니다.
문제
문자열 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글자를 넘지 않는다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
int R = 0;
String S = " ";
while (T != 0) {
T--;
R = sc.nextInt();
S = sc.next();
for (int i = 0; i < S.length(); i++) {
for (int j = 0; j < R; j++)
System.out.print(S.charAt(i));
}
System.out.println();
}
sc.close();
}
}
제가 푼 소스코드 입니다.
charAt()으로 하나씩 골라내어 순차적으로 for문을 활용한 문제입니다.
간단합니다.
import java.util.Scanner;
public class java_2675 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
for (int i = 0; i < num; i++) {
int cnt = sc.nextInt();
String str = sc.nextLine();
String result = "";
for (int j = 0; j < str.length(); j++) {
for (int k = 0; k < cnt; k++)
result += str.charAt(j);
}
result = result.replaceAll(" ", "");
System.out.println(result);
}
sc.close();
}
}
result에 모아서 한번에 출력시키는 방식을 사용하셨다.