1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define FOR(n) for (int i = 0; i < n;i++)
int main(void) {
int T;
scanf("%d", &T);
for (int tc = 1; tc <= T; tc++) {
int N, M;
scanf("%d %d", &N, &M);
int arrA[20];
int arrB[20];
FOR(N)
scanf("%d", &arrA[i]);
FOR(M)
scanf("%d", &arrB[i]);
int maxValue = -99999;
if (M > N) {
for (int k = 0; k < M - N + 1; k++) {
int sum = 0;
FOR(N)
sum += arrA[i] * arrB[i + k];
if (sum > maxValue) maxValue = sum;
}
}
else if (M < N) {
for (int k = 0; k < N - M + 1; k++) {
int sum = 0;
FOR(M)
sum += arrB[i] * arrA[i + k];
if (sum > maxValue) maxValue = sum;
}
}
printf("#%d %d\n", tc, maxValue);
}
}
|
cs |
0 1 2 : 3
0 1 2 3 4 : 5
012
123
234
두개의 배열이 있을 때, 더 긴 배열의 길이 - 짧은 배열의 길이 + 1 하면 경우의 수의 개수가 나오고,
비교적 더 작은 쪽 인덱스에 위에서 구한 0,1,2를 각각 더해준 값을 곱해주면 된다.
그리고 여기서 중요한 점은, 32번째 줄을 참고하자면 maxValue를 먼저 선언해주어야한다.
코드 다 잘 짜놓고 마지막에 sum = maxValue라고 했다가 답 안나와서 헤맸음
바꿔줄 값을 먼저 선언하는거 까묵지 말자.
'Language > C&C++' 카테고리의 다른 글
String 라이브러리 (0) | 2021.11.30 |
---|---|
pointer 참고 사항 (0) | 2021.11.25 |
C프 문자열 입력 받을 때 주의할 점. (0) | 2021.10.28 |
SWEA task code (0) | 2021.10.11 |
SWEA task code 0 (0) | 2021.10.03 |