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
		
	}
}