배열 비교하기(compare함수 이용,compareTo)

Psj·2025년 3월 3일
0

코딩테스트

목록 보기
31/47

내풀이

import java.util.stream.IntStream;

class Solution {
    public int solution(int[] arr1, int[] arr2) {
        return arr1.length>arr2.length ? 1 : arr1.length< arr2.length ? -1 : IntStream.of(arr1).sum() > IntStream.of(arr2).sum() ? 1 : IntStream.of(arr1).sum() < IntStream.of(arr2).sum() ? -1 : 0;
    }
}

다른사람풀이

import java.util.stream.IntStream;

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;
    }
}

compare 함수 사용

compare 함수 사용법

@Override
public int compare(인자1, 인자2){
    if(인자1 > 인자2){
      return 1;
    }else if(인자1 < 인자2){
      return -1;
    }else{
      return 0;
    }
}

compareTo 함수 사용법

class Person implements Comparable<Person> {
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public int compareTo(Person other) {
        return Integer.compare(this.age, other.age); // 나이 기준으로 비교
    }

    @Override
    public String toString() {
        return name + " (" + age + ")";
    }
}

public class Main {
    public static void main(String[] args) {
        Person p1 = new Person("Alice", 25);
        Person p2 = new Person("Bob", 30);

        System.out.println(p1.compareTo(p2)); // -1 (25 < 30)
        System.out.println(p2.compareTo(p1)); // 1  (30 > 25)
    }
}

compare나 compareTo나 비교값의 왼쪽이 크면 1
오른쪽이 크면 -1
같으면 0 이 나온다.

profile
Software Developer

0개의 댓글

관련 채용 정보