문제 설명
이 문제에서 두 정수 배열의 대소관계를 다음과 같이 정의합니다.
두 배열의 길이가 다르다면, 배열의 길이가 긴 쪽이 더 큽니다.
배열의 길이가 같다면 각 배열에 있는 모든 원소의 합을 비교하여 다르다면 더 큰 쪽이 크고, 같다면 같습니다.
두 정수 배열 arr1과 arr2가 주어질 때, 위에서 정의한 배열의 대소관계에 대하여 arr2가 크다면 -1, arr1이 크다면 1, 두 배열이 같다면 0을 return 하는 solution 함수를 작성해 주세요.
풀이
class Solution {
public int solution(int[] arr1, int[] arr2) {
int answer = 0;
if(arr1.length>arr2.length){
answer=1;
}else if(arr1.length<arr2.length){
answer=-1;
}
if(arr1.length==arr2.length){
int a=0;
int b=0;
for(int i=0; i<arr1.length; i++){
a+=arr1[i];
b+=arr2[i];
if(a>b){
answer=1;
}else if(a<b){
answer=-1;
}else{
answer=0;
}
}
}
return answer;
}
}
풀이해설
1) if-else if문
: 조건문
2) for문
: 반복문
3) length
: 배열의 길이를 알고자 할때 사용한다.
: length()는 문자열의 길이를 알고자 할 때 사용한다.
배열의 크기 비교를 위해 if-else문을 사용 후
배열의 크기가 같을 때 각 배열의 합을 구하기 위해 for문을 사용