Post

[Programmers] #181856 - 배열 비교하기 [Java][C++][Python]

[Programmers] #181856 - 배열 비교하기 [Java][C++][Python]

문제 링크


1. 아이디어

배열의 대소관계를 비교하는 문제로 두 배열의 길이가 다른지 먼저 비교한 후, 길이가 같다면 각 배열의 원소 합을 구해 비교하는 방식으로 진행하면 된다.


2. 복잡도

접근시간공간
풀이$O(N + M)$$O(1)$

($N$ = arr1의 길이, $M$ = arr2의 길이)


3. 코드

풀이 [Java][C++][Python]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
    public int solution(int[] arr1, int[] arr2) {
        if (arr1.length > arr2.length) return 1;
        if (arr1.length < arr2.length) return -1;

        int sum1 = 0, sum2 = 0;
        for (int x : arr1) {
            sum1 += x;
        }
        for (int x : arr2) {
            sum2 += x;
        }

        return Integer.compare(sum1, sum2);
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <bits/stdc++.h>
using namespace std;

int solution(vector<int> arr1, vector<int> arr2) {
    if (arr1.size() > arr2.size()) return 1;
    if (arr1.size() < arr2.size()) return -1;

    int sum1 = 0, sum2 = 0;
    for (int x : arr1) sum1 += x;
    for (int x : arr2) sum2 += x;

    return (sum1 > sum2) - (sum1 < sum2);
}
1
2
3
4
5
def solution(arr1, arr2):
    a = (len(arr1), sum(arr1))
    b = (len(arr2), sum(arr2))

    return (a > b) - (a < b)

This post is licensed under CC BY 4.0 by the author.