[swexpert] 1959. 두 개의 숫자열 (python)

728x90
반응형

짧은 쪽, 긴쪽 배열을 구분한 후 긴 배열에서 인덱스를 0부터 (긴배열길이-짧은 배열-1) 만큼 이동하면서 짧은 배열의 길이만큼 더해준다 

 

합이 마이너스가 나올 수가 있어서 결과 초기값을 어떻게 줄까 고민하다가 배열에 결과 합을 다 넣고 최대값을 리턴해주는 방식으로 구현했습니다. 

t=int(input())
for i in range(1,t+1):
    print(f'#{i}',end=' ')
    n,m=map(int,input().split())
    a=list(map(int,input().split()))
    b=list(map(int,input().split()))

    sum = []
    if n>m:
        for j in range(0,n-m+1):
            temp = 0
            for k in range(m):
                temp+=b[k]*a[j+k]
            sum.append(temp)
        print(max(sum))
    else:
        for j in range(0,m-n+1):
            temp = 0
            for k in range(n):
                temp+=a[k]*b[j+k]
            sum.append(temp)
        print(max(sum))
728x90
반응형
TAGS.

Comments