[SWEA]1946. 간단한 압축 풀기
1946.간단한 압축 풀기
문제
원본 문서는 너비가 10인 여러 줄의 문자열로 이루어져 있습니다.
문자열은 마지막 줄을 제외하고 빈 공간 없고 마지막 줄은 왼쪽부터 채워져 있습니다.
이 문서를 압축한 문서는 알파벳과 그 알파벳의 연속된 개수로 이루어진 쌍들이 나열되어 있습니다.
Ex) A 5 AAAAA
압축된 문서를 입력 받아 원본 문서를 만드는 프로그램을 작성하세요.
예제
A 10 | AAAAAAAAAA |
B 7 | BBBBBBBCCC |
C 5 | CC |
생각해보기
우선 받은 숫자만큼 리스트를 생성합니다. 마지막 리스트는 넓이 10으로 정하지말고 그냥 리스트만 생성하고 값을 넣어줍니다.
A 10이면 A를 10번 추가 나머지도 해서 전체 리스트를 하나 만들고, 조건문으로 리스트의 길이가 10이면 최종 리스트에 추가해줍니다. 마지막 리스트면 그냥 조건 없이 출력하도록 합니다.
코드을 구성하면서 값이 담긴 리스트를 생성하고, 숫자 N을 반복문 범위로 잡고 그때마다 input()으로 문자열과 문자열의 개수를 받고 저장합니다. 그리고 그 값대로 리스트에 추가 해줍니다.
값의 리스트를 범위로 반복문을 생성하고 문자열 변수를 하나 만들어서 거기에 값을 더해줍니다.
문자열의 길이가 10이라면 최종 리스트에 저장하도록 합니다.
그리고 문자열을 초기화합니다.
마지막으로 추가될 문자열은 10이 아닐 수 있기 때문에 값의 리스트 마지막 인덱스일때 추가 하도록 짜줬습니다.
T = int(input())
for tc in range(1, T+1):
N = int(input())
value = []
for i in range(N):
A = input().split()
for j in range(int(A[1])):
value.append(A[0])
Sten = ""
ten = []
for l, k in enumerate(value):
Sten += k
if len(Sten) == 10:
ten.append(Sten)
Sten = ""
elif l == len(value)-1:
ten.append(Sten)
print(f'#{tc}',*ten, sep= "\n")
댓글남기기