본문 바로가기
알고리즘

[LeetCode/JAVA] 1200. Minimum Absolute Difference

by 상후 2021. 9. 14.
728x90
반응형

 

 

https://github.com/ROUTINE-STUDY/Algorithm

알고리즘 스터디를 진행하고 있습니다. 😊
초보들로 구성되어있으며, 열심히 풀어보고 풀이 방식을 공유하고 피드백을 해주는 스터디입니다.
참여 문의는 댓글 혹은 GitHub 주소를 참고해주세요.

문제 출처 : https://leetcode.com/problems/minimum-absolute-difference/

 

Minimum Absolute Difference - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문제 설명

출처 : LeetCode

주어진 배열의 두 요소들의 값의 차이가 최소인 모든 쌍을 반환하세요.
풀이 방법
1. 배열을 정렬한 뒤, 2요소 씩 값을 비교하여 최소값을 찾습니다.
2. 구한 최소값과 같은 값을 이루는 쌍을 찾습니다.

정렬 작업을 해야 0번 요소와 1번요소 한번씩만 비교할 수 있습니다.
0번과 2번의 차는 0번과 1번보다 무조건 크기 때문에 최소값이 절대 아닙니다.
내 코드(JAVA)

 

public class Solution {

    public List<List<Integer>> minimumAbsDifference(int[] arr) {
        List<List<Integer>> answer = new ArrayList<>();

        // 최소 값 구하기
        Arrays.sort(arr);
        int MIN = arr[1] - arr[0];
        for(int i=1; i<arr.length-1; i++) {
            if(MIN > arr[i+1] - arr[i]) MIN = arr[i+1] - arr[i];
        }

        // 최소값과 일치하는 배열의 쌍 구하여 List에 넣기
        for(int i=0; i<arr.length-1; i++) {
            List<Integer> list = new ArrayList<>();
            if(arr[i+1] - arr[i] == MIN) {
                list.add(arr[i]);
                list.add(arr[i+1]);
                answer.add(list);
            }
        }

        return answer;
    }

}

 

 

 

 

728x90
반응형

댓글