문제

* 해당 문제의 모든 저작권은 SWEA 측에 있으며 본 블로그는 SWEA  약관을 위배하지 않음을 명시합니다.*

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpoFaAS4DFAUq 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


풀이

문제는 단순합니다.

그냥 반복문과 조건 파악만 잘하면 될 거 같습니다.

C/C++하다 자바하려니까 뭔가 손이 아직 마음대로 잘 안 풀리네요... 허허허


소스 코드

import java.util.Scanner;

public class Solution {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
			Scanner sc = new Scanner(System.in);
			
			int T = sc.nextInt();
			
			for(int test_case = 1; test_case <= T; test_case++) {
				int[] arr1 = new int[20];
				int[] arr2 = new int[20];
				int max = 0;
				
				int fir = sc.nextInt();
				int sec = sc.nextInt();
				
				for(int i = 0; i < fir; i++) {
					arr1[i] = sc.nextInt();
				}
				
				for(int i = 0; i < sec; i++) {
					arr2[i] = sc.nextInt();
				}
				
				if (fir < sec) {
					for(int i = 0; i <= sec-fir; i++) {
						int sum = 0;
						for(int j = i; j < i + fir; j++) {
							sum += arr1[j-i] * arr2[j];							
						}
						
						if(sum > max) {
							max = sum;
						}
					}
				}
				else if (sec < fir) {
					for(int i = 0; i <= fir-sec; i++) {
						int sum = 0;
						for(int j = i; j < i + sec; j++) {
							sum += arr1[j] * arr2[j-i];
						}
						if(sum > max) {
							max = sum;
						}
					}
				}
				
				System.out.println("#" + test_case + " " + max);
			}
		}
}

+ Recent posts