💻 Algorithm/Baekjoon

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

dlalwl_jpg 2022. 6. 28. 10:49

브론즈II

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

 

2675번: 문자열 반복

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

www.acmicpc.net

문제

문자열 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글자를 넘지 않는다. 


접근방법

각 반복횟수에 따라 문자를 반복하여 새로운 문자열을 저장하는 배열에 저장하여 출력한다.


코드

package bj2675;

import java.util.Scanner;

public class bj2675 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		
		int test_case = sc.nextInt(); //TEST CASE 개수 입력
		int[] count = new int[test_case];
		String[] s = new String[test_case];
		String[] new_s = new String[test_case];
		
		for(int i = 0; i < test_case; i++) {
			count[i] = sc.nextInt(); //반복 횟수 입력
			s[i] = sc.next(); //문자열 입력
			
			new_s[i] = ""; //새로운 문자열 비워주기
			
			for(int j = 0; j < s[i].length(); j++) { //문자열 길이만큼 반복
				
				for(int k = 0; k < count[i]; k++) {	//반복횟수만큼 new_s에 문자 넣기
					
					new_s[i] += s[i].charAt(j);
				}
			}
		}
		
		//결과 출력
		for(int i = 0; i < test_case; i++) {
			System.out.println(new_s[i]);
		}
	}

}

NOTE

처음에 새로운 문자열을 저장하는 new_s[]를 초기화 시켜주지 않아 문자열이 저장될 때 계속 앞에 null이 같이 저장되었다.

'💻 Algorithm > Baekjoon' 카테고리의 다른 글

[JAVA] 백준 2920 - 음계  (0) 2022.07.01
[JAVA] 백준 2908 - 상수  (0) 2022.06.28
[JAVA] 백준 1546 - 평균  (0) 2022.06.27
[JAVA] 백준 1157 - 단어 공부  (0) 2022.06.27
[JAVA] 백준 1152 - 단어의 개수  (0) 2022.06.27