서로 크기가 다르거나 같은 배열, 하나는 3 크기, 하나는 5 크기라고 했을때, 서로 마주보는 위치의 숫자를 곱하는 방법은 다음과 같다.
총 3번의 연산이 이루어지는데,
1) 3크기 배열의 첫 원소와, 5크기 배열의 첫 원소 부터 매칭하여 연산
2) 3크기의 배열 첫 원소와, 5크기 배열의 두 번째 원소
3) 3크기의 배열 첫 원소와, 5크기의 배열 세 번재 원소를 매칭하면 된다.
결론은 매칭 횟수는 5-3+1 가 되고,
매칭하는 원소끼리는 한 번 매칭될때마다
긴 배열쪽의 시작원소는 하나씩 커진다.
a_len, b_len = map(int, input().split())
a_arr = list(map(int, input().split()))
b_arr = list(map(int, input().split()))
longer = []
shorter = []
if a_len >= b_len:
longer = a_arr
shorter =b_arr
else:
longer = b_arr
shorter = a_arr
total_arr = []
for i in range(len(longer)- len(shorter)+1):
total = 0
for j in range(len(shorter)):
total += shorter[j] * longer[i+j]
total_arr.append(total)
25분 걸렸다.
예저에 이런 비슷한 문제를 푼적이 있는 것 같아서 빨리 풀 수 있었던 것 같다.