728x90
반응형
https://github.com/ROUTINE-STUDY/Algorithm
알고리즘 스터디를 진행하고 있습니다. 😊
초보들로 구성되어있으며, 열심히 풀어보고 풀이 방식을 공유하고 피드백을 해주는 스터디입니다.
참여 문의는 댓글 혹은 GitHub 주소를 참고해주세요.
문제 출처 : https://leetcode.com/problems/minimum-absolute-difference/
문제 설명
주어진 배열의 두 요소들의 값의 차이가 최소인 모든 쌍을 반환하세요.
풀이 방법
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
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스/JAVA] 없는 숫자 더하기 (0) | 2021.10.25 |
---|---|
[프로그래머스/JAVA] 최소직사각형(8주차) (0) | 2021.10.03 |
[프로그래머스/JAVA] 복서 정렬하기 (0) | 2021.09.13 |
[프로그래머스/JAVA] 상호 평가 (0) | 2021.09.11 |
[프로그래머스/JAVA] 부족한 금액 계산하기 (0) | 2021.09.08 |
댓글