본문 바로가기

SWEA/D2

[SWEA 1946][D2][JAVA] 간단한 압축 풀기

[문제]

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PmkDKAOMDFAUq&categoryId=AV5PmkDKAOMDFAUq&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

www.swexpertacademy.com

 

[풀이방법]

 

문서의 너비가 10이므로 각 문자들을 String 변수에 합쳐서 담은 후, index를 늘려가면서 출력합니다. (substring 사용)

문자열의 길이(s.length()) - index 의 값이 10으로 나누어질 경우 (> 0)와 나누어지지 않는 경우를 나눠서 출력합니다. 

나누어질 경우에는 index를 10만큼 늘려서 처음 10글자 / 그 다음 10글자를 출력하도록 하고 

나누어지지 않는 경우에는 현재 인덱스에서 문자열의 마지막까지 출력합니다. 

 

            String s = "";

            

            for (int i = 0; i < N; i++) {

                for (int j = 0; j < K[i]; j++) {

                    s += ch[i];

                }

            }

            

            int index = 0;

            System.out.println("#" + (k+1+ " ");

            while(index != s.length()) {

                if ((s.length() - index) / 10 >= 1) {

                    System.out.print(s.substring(index, index+10));

                    index += 10;

                }

                    

                else {

                    System.out.print(s.substring(index, s.length()));

                    index = s.length();

                }

                System.out.println();

            }