"SWEA 1959 두 개의 숫자열"의 두 판 사이의 차이

(새 문서: ==개요== ;{{subst:PAGENAME}} * {{SWEA 헤더}} {{SWEA 난이도 2-2}} |} ==C++== <source lang='cpp'> </source> ==Java== <source lang='java'> </source>)
 
13번째 줄: 13번째 줄:
==Java==
==Java==
<source lang='java'>
<source lang='java'>
import java.util.Scanner;
import java.util.Arrays;
class Solution {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for( int t=1; t<=T; t++) {
            int n, m, i, k;
            n = sc.nextInt();
            m = sc.nextInt();
            int a[] = new int[n];
            int b[] = new int[m];
            for( i=0; i<n; i++) a[i] = sc.nextInt();
            for( i=0; i<m; i++) b[i] = sc.nextInt();
            int sum, max = 0;
            for( k=0; k<m-n+1; k++ ) {
                sum = 0;
                for( i=0; i<n; i++) sum += a[i] * b[i+k];
                if( sum > max ) max = sum;
            }
            for( k=0; k<n-m+1; k++ ) {
                sum = 0;
                for( i=0; i<m; i++) sum += a[i+k] * b[i];
                if( sum > max ) max = sum;
            }
            System.out.format("#%d %d\n", t, max );
        }
    }
}
</source>
</source>

2018년 9월 14일 (금) 19:18 판

1 개요

SWEA 1959 두 개의 숫자열
SW Expert 아카데미
# 문제 풀이

틀:SWEA 난이도 2-2

2 C++

3 Java

import java.util.Scanner;
import java.util.Arrays;
class Solution {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for( int t=1; t<=T; t++) {
            int n, m, i, k;
            n = sc.nextInt();
            m = sc.nextInt();
            int a[] = new int[n];
            int b[] = new int[m];
            for( i=0; i<n; i++) a[i] = sc.nextInt();
            for( i=0; i<m; i++) b[i] = sc.nextInt();
            int sum, max = 0;
            for( k=0; k<m-n+1; k++ ) {
                sum = 0;
                for( i=0; i<n; i++) sum += a[i] * b[i+k];
                if( sum > max ) max = sum;
            }
            for( k=0; k<n-m+1; k++ ) {
                sum = 0;
                for( i=0; i<m; i++) sum += a[i+k] * b[i];
                if( sum > max ) max = sum;
            }
            System.out.format("#%d %d\n", t, max );
        }
    }
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}