백준

[JAVA] 백준 2675번 문자열 반복

DEV장화 2023. 3. 6. 20:52
728x90
반응형

 

문제

 

문자열 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 scanner = new Scanner(System.in);
        int count = scanner.nextInt();

        String res = "";
        for (int i = 0; i < count; i++) {
            int num = scanner.nextInt();
            String alpha = scanner.next();
            String[] beta = alpha.split("");

            for (int j = 0; j < beta.length; j++) {

                for (int k = 0; k < num; k++) {
                    res += beta[j];
                }
            }
            res += "\n";
        }
        System.out.println(res);
    }
}

 

1.

입력 받을 숫자를 'count'에 입력 받아준다.

int count = scanner.nextInt();

 

첫번째 for문을 돌려 'count'의 수 만큼 num와 alpha로 입력받아준다.

그리고 alpha에 입력받은 문자열을 split로 잘라 배열 안에 넣어준다.  

for (int i = 0; i < count; i++) {
    int num = scanner.nextInt();
    String alpha = scanner.next();
    String[] beta = alpha.split("");

예를 들어 

alpha에 love 를 입력받는다고 치면 

beta = {l,o,v,e} 가 입력되는 것.

 

 

2.

  for (int j = 0; j < beta.length; j++) {

        for (int k = 0; k < num; k++) {
            res += beta[j];
        }
    }
    res += "\n";
}
System.out.println(res);

num에는 3을. alpha에는 love를 입력받는다고 치면,

love 라는 각 알파벳들을 총 3번씩 출력해야 하기 때문에 (ex) lllooovvveee)

 

beta 안의 각 알파벳을 num의 수(=3) 만큼  차례대로 출력시킨다. 

 

 

 

728x90
반응형