[Java 정렬] 프로그래머스 - 가장 큰 수

gonudayo·2021년 8월 18일
0
post-thumbnail

java에서 Comparator 사용법을 익힐 수 있었다.

풀이

  1. 리스트에 배열을 문자열 형태로 집어 넣는다.
  2. sort를 사용하여 정렬한다.
    2-1. 앞 문자열과 뒷 문자열을 더했을때 더 큰 수가 나오는 순서로 정렬한다.
  3. 맨 앞이 0일 경우 0을 리턴.

전체코드

import java.util.List;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Collections;

class Solution {
	public String solution(int[] numbers) {
        String answer = "";
        List<String> list = new ArrayList<String>();
        
        for(int a : numbers) list.add(String.valueOf(a));

		Collections.sort(list, new numbersComparator());

		if(list.get(0).equals("0")) return "0";
		
		for (String a : list) answer += a;
        
		return answer;
	}
}

class numbersComparator implements Comparator<String> {
    @Override
	public int compare(String a, String b) {
        return ((b + a).compareTo(a + b));
    }
}

리스트에 문자열 형태로 삽입

List<String> list = new ArrayList<String>();
        
for(int a : numbers) list.add(String.valueOf(a));

정렬

Collections.sort(list, new numbersComparator());

class numbersComparator implements Comparator<String> {
    @Override
	public int compare(String a, String b) {
        return ((b + a).compareTo(a + b));
    }
}
  • 조건을 추가하기 위해 Comparator class를 만든다.
  • 앞 문자열과 뒷 문자열을 더했을때 더 큰 수가 나오는 순서로 정렬한다.
profile
초신성 백엔드 개발자

0개의 댓글