1일 1알고/알고리즘 재활 프로젝트
SWEA 1946. 간단한 압축 풀기 (Java)
yeong.
2021. 12. 9. 10:30
으아, 어제 하루종일 특강 듣는다고 저녁에 한문제 풀고 뻗어버림ㅠㅠ
오늘부터 다시 달려보자.
문제는 쉬웠는데 출력하는 형식이 조금 헷갈리는 문제였다.
별 생각 없이 StringBuffer의 길이가 10이 될 때마다 \n을 넣어주는 방식으로 하려고 했다가
생각해보니까 \n도 StringBuffer의 길이로 세어지니까 안 되는 게 당연한 거였다.
결국 StringBuffer에 줄바꿈까지 넣는 방법은 버리고 출력할 때 인덱스가 10으로 나누어진다면 줄바꿈을 넣는 방식으로 바꿨다.
정말 별 것 아닌 디테일에서 틀릴 때마다 내 백준 티어가 (턱걸이지만) 골드라는 게 믿기지가 않는다...ㅎ..
티어는 숫자에 불과하다....
package week2;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution_간단한압축풀기 {
static int TC, N;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
TC=Integer.parseInt(br.readLine());
for(int tc=1; tc<=TC; tc++) {
N=Integer.parseInt(br.readLine());
StringBuffer result=new StringBuffer();
StringTokenizer st;
for(int i=0;i<N;i++) {
st=new StringTokenizer(br.readLine(), " ");
String ch=st.nextToken();
int num=Integer.parseInt(st.nextToken());
for (int n = 0; n < num; n++) { // num 숫자만큼
result.append(ch);
}
}
System.out.println("#"+tc);
for(int i=0;i<result.length();i++) {
if(i!=0 && i%10==0) System.out.println();
System.out.print(result.charAt(i));
}System.out.println();
}// end tc
}
}