[프로그래머스] 가장 큰 수 - Java, 자바
난이도
레벨2
문제
https://programmers.co.kr/learn/courses/30/lessons/42746
풀이
- 반환타입이 문자열이고 정렬문제이므로, 정수형배열을 문자열 배열로 바꿔준다.
 - s2+s1, s1+s2 비교해서 더 큰 수를 반환해줘야한다.
ex) s1 = 3, s2 = 30 -> 330 vs 303
내림차순 = (s2 + s1).compareTo(s1 + s2);
오름차순 = (s1 + s2).compareTo(s2 + s1); - 모든 수가 0인 경우일 수 있으니 그 경우 "0"을 리턴한다.
 - 문자열배열을 문자로 만들고 리턴한다.
 
코드
import java.util.*;
public class Solution {
    public String solution(int[] numbers) {
        String answer = "";
        String[] arr = new String[numbers.length];
        for (int i = 0; i < numbers.length; i++) {
            arr[i] = String.valueOf(numbers[i]);
        }
        Arrays.sort(arr, new Comparator<String>() {
            @Override
            public int compare(String s1, String s2) {
                return (s2 + s1).compareTo(s1 + s2);
            }
        });
        if (arr[0].equals("0")) {
            return "0";
        }
        String s = "";
        for (int i = 0; i < arr.length; i++) {
            s += arr[i];
        }
        return s;
    }
}
https://tosuccess.tistory.com/199
https://ivory-room.tistory.com/43
Author And Source
이 문제에 관하여([프로그래머스] 가장 큰 수 - Java, 자바), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimmjieun/프로그래머스-가장-큰-수-Java-자바저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)