[알고리즘] 두 개의 숫자열

2024. 1. 1. 17:42알고리즘 풀이/Java

나의 풀이

- longer에 긴 것을 할당해준게 핵심

- Memory Error가 뜨면 index 에러일 수도 있다.

import java.util.Scanner;
import java.io.FileInputStream;

/*
   사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다.
   이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다.
 */
class Solution
{
	public static void main(String args[]) throws Exception
	{
		Scanner sc = new Scanner(System.in);
		int T;
		T=sc.nextInt();

		for(int test_case = 1; test_case <= T; test_case++)
		{
            int n = sc.nextInt();
            int m = sc.nextInt();
            
            int[] A = new int[n];
            int[] B = new int[m];
            for (int i = 0; i < n; i++) {
                A[i] = sc.nextInt();
            }
            for (int i = 0; i < m; i++) {
            	B[i] = sc.nextInt();    
            }
            
            int[] longer;
            int[] shorter;
            if (A.length >= B.length) {
            	longer = A;
                shorter = B;
            }
            else {
            	longer = B;
                shorter = A;
            }
			
            int gap = longer.length - shorter.length;
            int max_sum = Integer.MIN_VALUE;
            for (int iter = 0; iter <=gap; iter++) {
                int sum = 0;
            	for (int i = 0; i < shorter.length; i++) {
                	sum += longer[iter + i] * shorter[i];    
                }
                max_sum = Math.max(max_sum, sum);
            }
            
            System.out.println("#" + test_case + " " + max_sum);
        }
	}
}

 

- 컴파일 성공

if (A.length >= B.length) {
            	longer = A;
                shorter = B;
            }
else {
    longer = B;
    shorter = A;
}

 

- 컴파일 에러

if (A.length >= B.length) {
longer = A;
shorter = B;
}
else if (A.length < B.length) {
longer = B;
shorter = A;
}

 

왜 위와 같이 else를 else if로 바꾸면 에러가 나는지 모르겠다.

 

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

 

SW Expert Academy

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

swexpertacademy.com

 

'알고리즘 풀이 > Java' 카테고리의 다른 글

[알고리즘] 숫자 배열 회전  (0) 2024.01.01
[알고리즘] 스도쿠 검증  (0) 2024.01.01
[알고리즘] 최빈수 구하기  (0) 2024.01.01
[알고리즘] 파리퇴치3  (1) 2024.01.01
[알고리즘] 자릿수 더하기  (0) 2023.12.31