코딩테스트/SW Expert Academy

[D2] 1959. 두 개의 숫자열

2024. 10. 8. 09:20

1959. 두 개의 숫자열

 

✏️ 문제 풀이

-  N > M: 리스트 A가 더 길 경우, A의 각 부분 리스트에 대해 리스트 B와의 내적을 계산

A의 시작 인덱스 i를 0부터 N-M까지 이동시키며, 각 위치에서의 내적을 계산하여 answer 리스트에 추가
- N < M: 리스트 B가 더 길 경우, B의 각 부분 리스트에 대해 리스트 A와의 내적을 계산

B의 시작 인덱스 i를 0부터 M-N까지 이동시키며, 각 위치에서의 내적을 계산하여 answer 리스트에 추가

T = int(input())

for tc in range(1, T+1):
    N, M = map(int, input().split())
    A = list(map(int, input().split()))
    B = list(map(int, input().split()))
    answer = []

    if N > M:
        for i in range(0, N-M+1):
            s = 0
            for j in range(M):
                s += A[j+i] * B[j]
            answer.append(s)

    elif N < M:
        for i in range(0, M-N+1):
            s = 0
            for j in range(N):
                s += A[j] * B[j+i]
            answer.append(s)

    print("#%d" %tc, max(answer))