[백준/Java] 2675번 문제 해설 및 답안

이재윤·2024년 1월 2일

백준

목록 보기
2/25

백준 2675번 자바 풀이

문제는 백준 사이트와 똑같으니, 해설부터 보셔도 됩니다.

문제

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

해설

처음에 입력한 수(n)만큼 문자를 입력할 수 있기 때문에 배열(arr)에 넣어서 출력해야겠다고 생각했습니다. 그리고 n만큼 반복하는 for문 안에 반복 횟수 r, 반복할 문자열 s, 반복한 후 담아줄 문자열 p를 각각 입력 받거나, 초기화 시켜주고 s의 문자 하나하나에 접근하기 위해 s의 길이만큼 반복하는 for문, 그 안에 문자 하나가 정해졌으니 r만큼 반복하여 p에 추가해줄 for문. 마지막으로는 for each문을 사용해서 배열의 요소를 하나씩 출력합니다.

  1. 처음 입력한 수(n)만큼 배열(arr) 크기 지정
  2. n번 수행하는 for문에 반복 횟수 r, 반복할 문자열 s, 새 문자열 p를 선언
  3. s의 길이만큼 반복하여 문자 하나 접근 후, r번만큼 p에 추가해줌.
  4. 만들어진 p는 arr에 순차적으로 추가
  5. for each문을 사용하여 arr의 모든 요소 출력

답안

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		String[] arr = new String[n];
		
		for (int i = 0; i < n; i++) {
			int r = sc.nextInt();
			String s = sc.next();
			String p = "";
			for (int j = 0; j < s.length(); j++) {
				for (int k = 0; k < r; k++) {
					p += s.charAt(j);
				}
			}
			arr[i] = p;
		}
		for (String str : arr) {
			System.out.println(str);
		}
	}
}
profile
부족한 점이 많습니다. 피드백은 환영입니다!

0개의 댓글