[Python] SWEA - 1946 간단한 압출 풀기

Isabel·2022년 7월 16일
0

알고리즘 문제풀이

목록 보기
31/36

SWEA 1946 간단한 압축 풀기

#testcase
T = int(input())

for i in range (0, T) :
    arr = []
    #number of alphabet 
    num = int(input())
    
    for j in range (0, num) : 
        temp = input().split()
        arr.append(temp[0])
        arr.append(temp[1])
    temp = ""
    for j in range(len(arr)) : # 0, 1, 2
        if j % 2 != 1 : # 짝수번째 배열값일 때 
            print(int(arr[j+1]))
            for k in range(int(arr[j+1])) :
                temp = temp + arr[j]

    print(f'#{i+1}')
    for j in range(0, len(temp)//10+1) : 
        print(temp[j*10 : (j*10)+10])
    

VSCODE로 예제를 돌려봤을 때는 문제가 풀리지만 SWEA에서 돌리면 계속 아래와 같은 오류가 발생했다.

(Runtime error)
Error Message:
Memory error occured, (e.g. segmentation error, memory limit Exceed, stack overflow,... etc)

아직 문제푸는 방법을 잘 모르는 것인지 메모리를 너무 잡아먹는가보다ㅠㅠ
그 생각을 하면서 문제를 풀어야될 것 같다!
문자*int를 하면 문자가 int만큼 반복되어 출력된다는 것을 몰랐어서 괜히 어렵게 풀었던 것 같다. python 문법에 익숙해져야겠다. !

#testcase
T = int(input())

for i in range (0, T) :
    arr = []
    #number of alphabet 
    num = int(input())

    for j in range (0, num) : 
        temp = input().split()
        arr.append(temp[0])
        arr.append(temp[1])
    temp = ""
    for j in range(len(arr)) :
        if j % 2 == 0 : 
            temp = temp + arr[j]*int(arr[j+1])
        
    print(f'#{i+1}')
    for j in range(0, len(temp)//10+1) : 
        print(temp[j*10 : (j*10)+10])

성공! 쿡

0개의 댓글