[문제]
[풀이 방법]
N이 M보다 작은 경우 / 같을 경우 / 큰 경우를 나누어 최대값을 구했습니다.
A배열의 첫번째 인덱스를 기준으로 B 배열의 양 끝까지 움직이면서 최대값을 구하면 되므로,
총 M-N번 반복하여 A[1] 인덱스가 최대한 많은 B인덱스에 대입될 수 있도록 합니다. (M==5 이고 N==3 일 경우 A[1] 은 B[1],[2],[3] 에 대입될 수 있다.)
N만큼은 항상 계산이 되어야 하므로 배열 안의 숫자를 각각 곱하여 더한 값은 N만큼 반복합니다.
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int T = Integer.parseInt(st.nextToken());
StringBuffer sf = new StringBuffer();
for (int k = 0; k < T; k++) {
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[] A = new int[N];
int[] B = new int[M];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
A[i] = Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(br.readLine());
for (int i = 0; i < M; i++) {
B[i] = Integer.parseInt(st.nextToken());
}
int max = 0;
if (N < M) {
for (int j = 0; j <= M-N; j++) {
int result = 0;
for (int i = 0; i< N; i++) {
result += A[i] * B[i + j];
}
max = Math.max(result, max);
}
}
else if (N > M) {
for (int j = 0; j < N-M; j++) {
int result = 0;
for (int i = 0; i< M; i++) {
result += A[i+j] * B[i];
}
max = Math.max(result, max);
}
}
else {
int result = 0;
for (int i = 0; i< M; i++) {
result += A[i] * B[i];
}
max = Math.max(result, max);
}
}
System.out.println(sf.toString());
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
'SWEA > D2' 카테고리의 다른 글
[SWEA 1948][D2][JAVA] 날짜 계산기 (0) | 2019.05.08 |
---|---|
[SWEA 1954][D2][JAVA] 달팽이 숫자 (0) | 2019.05.08 |
[SWEA 1962][D2][JAVA] 숫자 배열 회전 (0) | 2019.05.07 |
[SWEA 1974][D2][JAVA] 스도쿠 검증 (0) | 2019.05.03 |
[SWEA 1970][D2][JAVA] 쉬운 거스름돈 (0) | 2019.05.03 |