개발공부/TIL

[국비지원] 28일차 - Minimum Absolute Difference

jnnjnn 2024. 3. 18. 18:32

 

오늘은 List 컬렉션과 ArrayList에 대해서 배웠기 때문에 ArrayList를 활용할 수 있는

leetcode의 1200번 문제 Minimum Absolute Difference를 풀어보았다.

 

 

배열에서 모든 요소 중 두 요소의 차가 가장 적은 값을 찾고 두 요소의 차가 가장 적은 값인 모든 요소의 pair를 리스트로 반환하는 문제이다

 

풀이는 다음과 같다

 

class Solution {
    public List<List<Integer>> minimumAbsDifference(int[] arr) {
        List<List<Integer>> list = new ArrayList<>();
        Arrays.sort(arr);
        int diff = 1000000;
        for(int i = 0; i<arr.length-1; i++){
            if(arr[i+1] - arr[i] < diff){
                diff = arr[i+1] - arr[i];
            }
        }
        for(int i = 0; i<arr.length-1; i++){
            if(arr[i+1]-arr[i] == diff){
                List<Integer> num = new ArrayList<>();
                num.add(arr[i]);
                num.add(arr[i+1]);
                list.add(num);
            }
        }
        return list;
    }
}

 

배열의 요소의 차가 가장 작은 값을 찾고(diff) 해당 값을 차로 가지는 pair를 새 리스트에 담아(num) pair 리스트를 요소로 가지는 리스트를(list)를 구했다.

 

Arrays.sort()를 사용했기 때문에 arr i번째 다음에 오는 값과 arr i번째의 값을 빼기만 하면 두 수의 차를 구할 수 있다.

 

 

 

 


 

 

2024.03.18 - [개발공부/JAVA] - [JAVA] 컬렉션 프레임워크

 

[JAVA] 컬렉션 프레임워크

자바는 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 관련한 인터페이스와 클래스들을 구현해놓았다. 이들을 총칭

abc-datatype.tistory.com

 

2024.03.18 - [개발공부/JAVA] - [JAVA] List 컬렉션 - ArrayList, Vector, LinkedList

 

[JAVA] List 컬렉션 - ArrayList, Vector, LinkedList

List 컬렉션 List 컬렉션은 객체를 인덱스로 저장, 관리한다. List 컬렉션에는 ArrayList, Vector, LinkedList 등이 있으며 List 컬렉션에서 공통으로 사용 가능한 List 인터페이스 메소드는 다음과 같다. 기능

abc-datatype.tistory.com