반응형

Comparator 가 부족한것 같아서 Compartor를 이용해서 문제를 풀었다.

Comparator에서 int, float, char 등은 원시적인 데이터등은 정렬이 되지 않고 Object등만 정렬 가능하다. (String, Integer 등등)

그런데 원시적인 데이터의 2차 배열은 객체인가보다.. int[][]는 Comparator를 통해 정렬을 할 수 있다.  너므 어려운것...

나는 그래서 이문제를 Comparator를 통해 풀고자 int배열이 아닌 Integer 배열을 사용했다.


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.FileInputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
 
public class Main {
    static boolean[][] arr;
    static int[][] kevin;
    static int[] bacon;
    static int n;
    static int m;
 
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("input.txt")));
        String str = br.readLine();
        int size = str.length();
        Integer[] arr = new Integer[size];
        for (int i = 0; i < size; i++) {
            arr[i] = str.charAt(i) - '0';
        }
        // Comparator를 사용하기 위해 객체인 Integer 변수를 사용
        Arrays.sort(arr,new Comparator<Integer>(){
            @Override
            public int compare(Integer x, Integer y){
                //x,y 값으로 놓으면 오름차순이다. 나는 y,x로 놓아서 내림차순으로 바꾸었다.
                return Integer.compare(y, x);
            }
        });
        //for-each
        for(Integer i:arr){
            System.out.print(i);
        }
        
    }
 
}
cs


반응형

+ Recent posts