Algorithm/코딩테스트

[코딩테스트] 백준 - 문자열 반복

jjuya 개발 기록 2024. 7. 20. 17:05

백준 - 문자열반복 2675번 [4일차]

시간제한 메모리 제한
1초 128MB

문제

 

문자열 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를 출력한다.

 

 

나의코드

package day4;

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

public class Solution1 {
    public static void main(String[] args) throws IOException {
        // 문자열 반복 2675번
        // String S = 문자열 입력
        // R번 반복
        // p 새문자열 만들기
        // 출력
        // while문
        // 첫번째 문자 R번 반복
        // 두번째 문자 R번 반복

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        // 첫번째줄 숫자
        int totalNum = Integer.parseInt(br.readLine());

        while (totalNum != 0) {
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            int num = Integer.parseInt(st.nextToken());
            String str = st.nextToken();

            // i번째 문자 num만큼 반복하기
            for (int i = 0; i < str.length(); i++) {
                char s = str.charAt(i);
                for (int j = 0; j < num; j++) {
                    sb.append(s);
                }
            }
            sb.append("\n");
            totalNum--;
        }
        System.out.println(sb.toString());
    }
}

 

srt을 toCharArray() 로 배열로 받아오는 방법도 있었다!