본문 바로가기

코딩테스트/백준

[백준-자바/파이썬] 2675번 문자열 반복 / 2021.08.28

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

 

2675번: 문자열 반복

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

www.acmicpc.net

 

 

1. Java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        
        for(int k = 0; k < T; k++) {
            int R = sc.nextInt();
            String S = sc.next();
            String P = "";
            for(int i = 0; i < S.length(); i++) {
                for(int j = 0; j < R; j++) {
                    P += S.charAt(i);
                }
            }
            System.out.println(P);
        }
    }
}
 
cs


풀이 :
맨 처음에 int T를 선언해 테스트 케이스 개수를 입력받는다.
그리곤 테스트 케이스의 개수만큼 for문을 돌린다.
for문안에 문자를 반복할 개수인 int R, 반복할 문자열인 String S, 반복한 문자를 차례대로 저장해 줄 문자열인 String P를 각각 선언한다.
다음으로 이중 for문을 사용해서 첫 번째 for문은 S의 길이만큼 두 번째 for문은 반복할 개수인 R만큼 돌려준다.
문자열 P에 charAt()를 이용해서 더해준다.
ex) R이 3이고, 문자열 S가 ABC일 때, P에는 차례대로 A A A B B B C C C 가 더해진다.

 

 

2. Python

 

1
2
3
4
5
6
7
8
9
10
= int(input())
 
for k in range(0, T):
    R, S = input().split(' ')
 
    new_S = list(S)
    P = ""
    for i in range(len(S)):
        P += new_S[i]*int(R)
    print(P)
cs


풀이 :
전체적인 형태는 Java와 비슷한데, 한글자씩 떼기 위해 list로 변환했다는 점과 python은 문자에 숫자를 곱하면 숫자만큼 문자가 반복된다는 점이 다르다.
ex) p * 3 = ppp