반응형
1931 문제를 풀고 난 후 푸니까 매우 쉬웠다.
Comparator를 사용한 정렬을 했다.
아래는 1931 문제에서 Comparator를 사용한 내용
-------------------------------------1931-------------------------------------
이때, 나는 Comparator를 이용해 정렬을 했다.
정렬을 할 때
1 1 0 1
1 1 ---> 1 1
0 1 ---> 1 1
2 3 2 3
처럼 정렬이 되어야 하는데 기본 Comparator 에서는 정렬되지 않기 때문에
동일 시 되었을 경우 앞에 값을 우선으로 하는 start[1] ==end[1] 이라는 조건을 넣어
종료시간 정렬 후 종료 시간이 같을 경우, 시작시간에 따라 다시 한번 정렬을 했다.
-------------------------------------1931-------------------------------------
11650 좌표 정렬하기 <소스코드>
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 32 33 34 35 36 37 | import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine().trim()); int[][] arr = new int[N][2]; String[] str = new String[2]; for (int i = 0; i < N; i++) { str = br.readLine().split(" "); arr[i][0] =Integer.parseInt(str[0]); arr[i][1] = Integer.parseInt(str[1]); } Arrays.sort(arr, new Comparator<int[]>() { @Override public int compare(int[] x, int[] y) { if (x[0] == y[0]) { return Integer.compare(x[1], y[1]); } return Integer.compare(x[0], y[0]); } }); for (int i = 0; i < N; i++) { System.out.println(arr[i][0] + " " + arr[i][1]); } } } | cs |
반응형
'나는요 공부가 좋....은걸... > 알고리즈음' 카테고리의 다른 글
[BOJ] 백준 11651 - 좌표 정렬하기 (자바) (0) | 2018.01.12 |
---|---|
[BOJ] 백준 10814 - 나이순 정렬 (자바) (0) | 2018.01.12 |
[BOJ] 백준 1427 - 소트인사이드 (자바) (0) | 2018.01.12 |
[BOJ] 백준 1931 - 회의실 배정 (자바) (1) | 2018.01.11 |
[BOJ] 백준 2644 - 촌수 계산 (자바) (0) | 2018.01.11 |