[Cording Test] 프로그래머스 - 가장 큰 수 (정렬)

2019. 8. 1. 18:57Go to 알고리즘천재/정렬

문제


 

0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요.

 

*예시

 

나의 답안


import java.util.Arrays;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        
 String answer = "";
        int len = numbers.length;
        
        // x.compareTo(y)
        // *x, y가 문자열인 경우 사전적 의미
        //  x > y 인 경우 양수
        //  x < y 인 경우 음수
        //  x==y 인 경우 0
        
        // 문자열로 바꾸기
        String[] tmp = new String[len];
        for(int i = 0; i < len; i++) {
        	tmp[i] = Integer.toString(numbers[i]);
        }
        
        // 사용자정의 sort() 이용하여 정렬
        	Arrays.sort(tmp, new Comparator<String>() {
				@Override
				public int compare(String o1, String o2) {
					System.out.println((o2+o1)+" "+(o1+o2));
					System.out.println((o2+o1).compareTo(o1+o2));
						return (o2+o1).compareTo(o1+o2);
				}
			});
        	
        	for(int i = 0; i < len; i++) {
        		answer += tmp[i];
        	}
        
        return answer;
        
    }

}

 

사용 개념