Coding Test/SW Expert Academy
[SWEA] 1959. 두 개의 숫자열 c++
owls
2022. 11. 18. 09:50
728x90
- 문제
※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.
N 개의 숫자로 구성된 숫자열 Ai (i=1~N) 와 M 개의 숫자로 구성된 숫자열 Bj (j=1~M) 가 있다.서로 마주보는 숫자들을 곱한 뒤 모두 더할 때 최댓값을 구하라.
위 예제의 정답은 아래와 같이 30 이 된다.

- 문제 해결
#include<iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(int argc, char** argv)
{
int test_case;
int T;
cin>>T;
for(test_case = 1; test_case <= T; ++test_case)
{
int n = 0, m = 0;
cin >> n >>m;
vector<int> A(n, 0), B(m,0);
for(int i = 0; i < n; i++){
cin >> A[i] ;
}
for(int i = 0; i < m; i++){
cin >> B[i];
}
if( n < m){
vector<int> C;
C = A;
A = B;
B = C;
}
n = A.size();
m = B.size();
int result = INT8_MIN;
for(int i = 0; i <= n-m; i++){
int sum = 0;
for(int j = 0; j < m; j++){
sum += A[j + i] * B[j];
}
result = max(result, sum);
}
cout << "#" << test_case << " " << result << endl;
}
return 0;
}728x90