[SW Expert Academy, SWEA 1946] 간단한 압축 풀기 (python)
Problem Solving/SWEA

[SW Expert Academy, SWEA 1946] 간단한 압축 풀기 (python)

728x90

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PmkDKAOMDFAUq&categoryId=AV5PmkDKAOMDFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=2

 

SW Expert Academy

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

swexpertacademy.com


※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.

728x90

내 생각

입출력 시에, 출력이 다 끝나고 다음 test case로 넘어가기 전에 줄 개행에 신경써줘야 한다.

#1
AAAAAAAAAA
BBBBBBBCCC
CC

#2

이렇게 되거나

#1
AAAAAAAAAA
BBBBBBBCCC
CC#2

이렇게 출력되면 안되고

#1
AAAAAAAAAA
BBBBBBBCCC
CC
#2

꼭 이렇게 출력되야 한다.

배열로 풀기

T = int(input())

for test_case in range(1, T + 1):
    N = int(input())

    charList = []
    for _ in range(N):
        c, k = input().split()

        #문자 c를 k개만큼 charList에 넣는다
        for i in range(int(k)):
            charList.append(c)

    print("#{}".format(test_case), end="")
    #charList 안의 문자들을 10개 씩 한 줄에 출력
    for i in range(len(charList)):
        if i % 10 == 0:
            print()
        print(charList[i], end="")
    print()

String으로 풀기

T = int(input())

for test_case in range(1, T + 1):
    N = int(input())

    text = ""
    for _ in range(N):
        c, k = input().split()
        text += c * int(k)

    print("#{}".format(test_case))
    for i in range(0, len(text), 10):
        print(text[i:i+10])
728x90