코딩 테스트/백준

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

리져니 2021. 7. 9. 00:05

문제

문자열 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 /HTP

예제 출력 

AAABBBCCC

/////HHHHHTTTTTPPPPP

출처

ICPC > Regionals > North America > Greater New York Region > 2011 Greater New York Programming Contest A번

 


코드

import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.StringTokenizer;


public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int strNum = Integer.parseInt(br.readLine());

        for(int i=0;i<strNum;i++){
            StringTokenizer st = new StringTokenizer(br.readLine()," ");
            int count = Integer.parseInt(st.nextToken());
            String tmp = st.nextToken();

            for(int j=0;j<tmp.length();j++) {
                for (int k = 0; k < count; k++) {
                    System.out.print(tmp.charAt(j));
                }
            }
            System.out.println();
        }
    }
}

 

풀이

  int strNum = Integer.parseInt(br.readLine());

입력받은 첫번째 줄의 숫자(입력받을 문자열의 개수)를 strNum변수에 대입

 

 for(int i=0;i<strNum;i++){
            StringTokenizer st = new StringTokenizer(br.readLine()," ");
            int count = Integer.parseInt(st.nextToken());
            String tmp = st.nextToken();

첫번쨰 for문:

입력받을 문자열의 개수만큼 br.readLine()로 문자열을 받아서 StringTokenizer로 공백(" ")으로 문자열을 구분하여 count(문자를 반복할 횟수)와 tmp(문자열)변수에 대입

 

 for(int j=0;j<tmp.length();j++) {
                for (int k = 0; k < count; k++) {
                    System.out.print(tmp.charAt(j));
                }
            }

outerFor문:

tmp(문자열)의 갯수만큼 반복하여 문자열의 각 요소(문자)에 접근함

 

innerFor문:

count만큼 해당 요소(문자)를 반복해서 출력

* tmp.charAt(j)를 통해 해당 인덱스에 위치한 문자를 출력

 

결과

 

728x90

'코딩 테스트 > 백준' 카테고리의 다른 글

[백준2920/JAVA] 음계  (0) 2021.07.09
[백준2908/JAVA] 상수  (0) 2021.07.09
[백준2577/JAVA] 숫자의 개수  (0) 2021.07.08
[백준2526/JAVA] 최댓값  (0) 2021.07.05
[백준10871/JAVA] X보다 작은 수  (0) 2021.07.05