[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.