이번시간에는 2차원 배열을 정렬하는 법에 대해 간략하게 알아보겠습니다.
알고리즘 문제를 풀다보면 2차원 배열을 사용할 경우가 많고 그 중 다시 정렬이 필요한 경우가 있습니다.
다른 블로그를 탐색하다 아주 쉽게 사용하는 방법을 찾아 공유드리려고 해요.
int[][] list = new int[n][m];
Arrays.sort(list, Comparator.comparingInt((int[] o) -> o[0]));
과 같이 Comparator 의 comparing 메서드를 사용하시게 되면 2차원 배열 기준 0번째 원소 기준으로 오름차순 정렬이 진행됩니다.
예시는 아래와 같습니다.
데이터
{1, 0}, {5, 1}, {3, 0}, {2, 1}
정렬 후
{1, 0}, {2, 1}, {3, 0}, {5, 1}
만약 내림차순으로 정렬을 원할경우 아래와 같이 reversed()만 붙여주면 가능합니다.
int[][] list = new int[n][m];
Arrays.sort(list, Comparator.comparingInt((int[] o) -> o[0]).reversed());
정렬 후 데이터는 아래와 같습니다.
데이터
{1, 0}, {5, 1}, {3, 0}, {2, 1}
정렬 후
{5, 1}, {3, 0}, {2, 1}, {1, 0}