[Java] 배열 비교 Compare() 사용방법

박수민·2024년 7월 21일
0

배열 비교하기 문제
문제를 풀다. 다른 사람의 코드를 보고 새로운 방법을 알게되어 정리해봅니다.

기존 코드

class Solution {
    public int solution(int[] arr1, int[] arr2) {
        int answer = 0;
        int a1 = 0;
        int a2 = 0;
        
        if(arr1.length > arr2.length) {
            answer = 1;
        }
        else if(arr2.length > arr1.length) {
            answer = -1;
        }
        else {
            for(int i = 0; i < arr1.length; i++) {
                a1 += arr1[i];
                a2 += arr2[i];
            }
            if(a1 > a2) {
                answer = 1;
            }
            else if(a2 > a1) {
                answer = -1;
            }
            else{
                answer = 0;
            }
        }
        
        return answer;
    }
}
  • Compare 함수의 결과 예시
public class Example {  
	public static void main(String... args) {    
		// 결과는 -1
		System.out.println(Integer.compare(1, 2));
		// 결과는 0
		System.out.println(Integer.compare(2, 2));
		// 결과는 1
		System.out.println(Integer.compare(3, 2));
	}
}

<, =, >의 순서로 -1, 0, 1의 값이 나옵니다.

수정 코드

class Solution {
    public int solution(int[] arr1, int[] arr2) {
        int answer = Integer.compare(arr1.length, arr2.length);
        int a1 = 0;
        int a2 = 0;

        if(answer == 0) {
            for(int i = 0; i < arr1.length; i++) {
                a1 += arr1[i];
                a2 += arr2[i];
            }
            answer = Integer.compare(a1, a2);
        }

        return answer;
    }
}

compare 함수를 통하여 코드를 더 간단하고 가시적으로 만들 수 있었습니다.

0개의 댓글