SWEA 1946 간단한 압축 풀기

Jmnote (토론 | 기여)님의 2019년 1월 26일 (토) 17:19 판 (→‎C++)

1 개요

SWEA 1946 간단한 압축 풀기
SW Expert 아카데미
# 문제 풀이

틀:SWEA 난이도 2-2

2 C++

#include <iostream>
using namespace std;
int main() {
    int T;
    scanf("%d", &T);
    int N, K;
    char C;
    char a[200];
    for(int tc=1; tc<=T; tc++) {
        scanf("%d", &N);
        int pos = 0;
        for(int i=0; i<N; i++) {
            scanf(" %c", &C);
            scanf("%d", &K);
            for(int j=0; j<K; j++) {
                a[pos+j] = C;
            }
            pos += K;
        }
        printf("#%d\n", tc);
        for(int i=0; i<pos; i+=10) {
            int end = i+10;
            if( pos < end ) end = pos;
            for(int j=i; j<end; j++) printf("%c", a[j]);
            printf("\n");
        }
    }
}

3 Java

import java.util.Scanner;
public class Solution {
    public static String str_repeat(String str, int times) {
        return new String(new char[times]).replace("\0", str);
    }
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for(int t=1; t<=T; t++) {
            int n = sc.nextInt();
            String s = "";
            for(int i=0; i<n; i++) {
                String ch = sc.next();
                int r = sc.nextInt();
                s += str_repeat(ch, r);    
            }
            System.out.format("#%d\n", t);
            for(int i=0; i<s.length(); i++) {
                System.out.print(s.charAt(i));
                if( i%10 == 9 )System.out.print("\n");
            }
            System.out.print("\n");
        }
    }
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}