문제
원본 문서는 너비가 10인 여러 줄의 문자열로 이루어져 있다.
문자열은 마지막 줄을 제외하고 빈 공간 없이 알파벳으로 채워져 있고 마지막 줄은 왼쪽부터 채워져 있다.
이 문서를 압축한 문서는 알파벳과 그 알파벳의 연속된 개수로 이루어진 쌍들이 나열되어 있다. (예 : A 5 AAAAA)
압축된 문서를 입력 받아 원본 문서를 만드는 프로그램을 작성하시오.
입력
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스에는 N이 주어지고 다음 줄부터 N+1줄까지 Ci와 Ki가 빈 칸을 사이에 두고 주어진다.
1 3 A 10 B 7 C 5 |
출력
각 줄은 '#t'로 시작하고, 다음 줄부터 원본 문서를 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
#1 AAAAAAAAAA BBBBBBBCCC CC |
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
import java.util.*;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int t = sc.nextInt(); //테스트 케이스 개수
for(int i=0; i<t; i++){
int n = sc.nextInt();
String str = makeString(n,sc);
System.out.printf("#%d\n",i+1);
printString(str);
}
}
public static String makeString(int n, Scanner sc){
StringBuilder sb = new StringBuilder();
for(int i =0; i<n; i++){
String str = sc.next();
int k = sc.nextInt();
for(int j=0; j<k; j++){
sb.append(str);
}
}
return sb.toString();
}
public static void printString(String str){
for(int i=0; i<str.length(); i++){
System.out.printf("%c",str.charAt(i));
if((i+1)%10==0) System.out.println();
}
System.out.println();
}
}
|
cs |
'SW expert Academy > D2' 카테고리의 다른 글
[SW Expert Academy] 1928번 Base64 Decoder (0) | 2023.05.12 |
---|---|
[SW Expert Academy] 1940번 가랏! RC카! (0) | 2023.05.12 |
[SW Expert Academy] 1948번 날짜 계산기 (0) | 2023.05.12 |
[SW Expert Academy] 1954번 달팽이 숫자 (0) | 2023.05.12 |
[SW Expert Academy] 1959번 두 개의 숫자열 (1) | 2023.05.11 |