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))
'코딩테스트 > SW Expert Academy' 카테고리의 다른 글
[D2] 1288. 새로운 불면증 치료법 (1) | 2024.10.10 |
---|---|
[D2] 1983. 조교의 성적 매기기 (0) | 2024.10.10 |
[D2] 1984. 중간 평균값 구하기 (0) | 2024.10.08 |
[D2] 1986. 지그재그 숫자 (0) | 2024.10.07 |
[D2] 1961. 숫자 배열 회전 (0) | 2024.10.07 |