Level.0
문제
이 문제에서 두 정수 배열의 대소관계를 다음과 같이 정의합니다.
두 배열의 길이가 다르다면, 배열의 길이가 긴 쪽이 더 큽니다.
배열의 길이가 같다면 각 배열에 있는 모든 원소의 합을 비교하여 다르다면 더 큰 쪽이 크고, 같다면 같습니다.
두 정수 배열 arr1과 arr2가 주어질 때, 위에서 정의한 배열의 대소관계에 대하여 arr2가 크다면 -1, arr1이 크다면 1, 두 배열이 같다면 0을 return 하는 solution 함수를 작성해 주세요.
* 제한사항
- 1 ≤ arr1의 길이 ≤ 100
- 1 ≤ arr2의 길이 ≤ 100
- 1 ≤ arr1의 원소 ≤ 100
- 1 ≤ arr2의 원소 ≤ 100
- 문제에서 정의한 배열의 대소관계가 일반적인 프로그래밍 언어에서 정의된 배열의 대소관계와 다를 수 있는 점에 유의해주세요.
풀이. 1
import java.util.stream.*;
class Solution {
public int solution(int[] arr1, int[] arr2) {
int size1 = arr1.length;
int size2 = arr2.length;
int sum1 = IntStream.range(0, size1).map(i -> arr1[i]).sum();
int sum2 = IntStream.range(0, size2).map(i -> arr2[i]).sum();
if(size1<size2) return -1;
else if (size1 > size2) return 1;
else {
if(sum1 == sum2) return 0;
if(sum1 > sum2) return 1;
if(sum1 < sum2) return -1;
}
return 0;
}
}
풀이. 2
import java.util.stream.*;
class Solution {
public int solution(int[] arr1, int[] arr2) {
int answer = Integer.compare(arr1.length, arr2.length);
if(answer == 0)
answer = Integer.compare(IntStream.of(arr1).sum(), IntStream.of(arr2).sum());
return answer;
}
}
Integer.compare
public static int Compare(int x, int y)
매개변수로 주어진 두 정수를 비교하여 값을 리턴하는 메서드이다.
- x == y : 0리턴
- x < y : 0보다 작은 값 리턴. -1
- x > y : 0보다 큰 값 리턴. 1
https://school.programmers.co.kr/learn/courses/30/lessons/181856
'Algorithm > Programers - Java' 카테고리의 다른 글
[프로그래머스(Java)] 뒤에서 5등 위로 / skip (0) | 2024.02.04 |
---|---|
[프로그래머스(Java)] 카운트 다운 / rangeClosed(), iterate() (0) | 2024.01.28 |
[프로그래머스(Java)] 글자 이어 붙여 문자열 만들기 / StringBuilder (0) | 2024.01.27 |
[프로그래머스(Java)] 순서 바꾸기 (0) | 2024.01.21 |
[프로그래머스(Java)] 배열의 원소 삭제하기 / anyMatch() (0) | 2024.01.21 |