ALGORITHM

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

연듀 2022. 7. 20. 10:43

https://www.acmicpc.net/problem/2675

 

2675번: 문자열 반복

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다

www.acmicpc.net

 

 

 

쉬운 문제지만 Scanner와 BufferedReader를 정리하기 위해 작성한다.

 

 

 

Scanner

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t=sc.nextInt();

        for(int i=0; i<t; i++){
            int r=sc.nextInt();
            String s=sc.next();

            for(char x : s.toCharArray()){
                for(int j=0; j<r; j++){
                    System.out.print(x);
                }
            }
            System.out.println();
        }

    }
}

 

Scanner로 받을 때 주의할점은 Scanner.nextLine()이 아닌 Scanner.next()로 입력받아야한다.

nextLine()으로 받으면 엔터를 받을때까지 기준으로 한줄을 읽어버려 공백까지 읽는다.

next()는 공백을 기준으로 하나의 문자열만 읽는다.

 

 

 

BufferedReader  

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

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[] arr=br.readLine().split(" ");

            int r=Integer.parseInt(arr[0]);
            String s = arr[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() 은 공백을 포함한 한 줄 전체를 읽는다.