티스토리 뷰

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

만약 첫 번째 요소가 같다면 두 번째 요소로 비교해줘야 한다, 만일 다르다면 첫 번째 요소로 비교 해줘라 라는 뜻입니다.

반응형

'JVM' 카테고리의 다른 글

[JAVA][String] 정렬하는 방법  (0) 2021.07.27
JAVA ".class"에 대하여  (0) 2021.07.05
String charAt()  (0) 2021.06.25
MySQL & JDBC 연결  (0) 2021.05.15
자바 문자 비교  (0) 2021.05.12
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함