JVM
[java][2d array][Comparator] 2차원 배열 정렬
글을 쓰는 개발자
2021. 7. 30. 09:16
반응형
적용 문제: https://leetcode.com/problems/merge-intervals/
Merge Intervals - 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
1. 문제에 적용하기
해당 문제를 풀었을 때 정렬 안하고 풀었더니 다음과 같은 테스트 케이스에서 막혔었다.
Input: [[1,4],[0,4]]
Output: [[1,4]]
Expected: [[0,4]]
그래서 해당 input을 먼저 정렬한 다음에 솔루션을 적용해보기로 했다.
우선 저는 첫 번째 위치에 대하여만 정렬하여 풀어보기로 했다.
Arrays.sort(intervals,Comparator.comparingInt(v1 -> v1[0]));
간단하게 설명해보자면 [[1,3],[2,6],[5,4],[4,3]] 이런식으로 있을 때 1,2,5,4 즉 앞의 숫자만 비교하여 정렬한다는 뜻이다.
만일 이렇게 하는 것이 불안하다면 2번째 요소까지 비교해줘야 한다.
Arrays.sort(intervals,(v1,v2) -> {
if(v1[0]==v2[0]){
return Integer.compare(v1[1],v2[1]);
}else{
return Integer.compare(v1[0],v2[0]);
}
});
만약 첫 번째 요소가 같다면 두 번째 요소로 비교해줘야 한다, 만일 다르다면 첫 번째 요소로 비교 해줘라 라는 뜻입니다.
반응형