본문 바로가기

알고리즘

(JAVA) 가장 큰 수

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

class Solution {
    public String solution(int[] numbers) {
        String answer = "";

        List<Integer> list = new ArrayList<>();
        for(int i = 0; i < numbers.length; i++) {
            list.add(numbers[i]);
        }
        Collections.sort(list, (a, b) -> {
            String as = String.valueOf(a), bs = String.valueOf(b);
            return -Integer.compare(Integer.parseInt(as + bs), Integer.parseInt(bs + as));
        });
        StringBuilder sb = new StringBuilder();
        for(Integer i : list) {
            sb.append(i);
        }
        answer = sb.toString();
        if(answer.charAt(0) == '0') {
            return "0";
        }else {
            return answer;
        }
    }
}
-----------------------------------
import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        String[] s = new String[numbers.length];

        for(int i = 0; i < numbers.length; i++)
            s[i] = String.valueOf(numbers[i]);

        Arrays.sort(s, new Comparator<String>(){
            @Override
            public int compare(String a, String b){
                if(a.charAt(0) == b.charAt(0)){
                    int aa = Integer.parseInt(a+b);
                    int bb = Integer.parseInt(b+a);
                    return bb - aa;
                }

                return b.charAt(0) - a.charAt(0);
            }
        });

        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < s.length; i++)
            sb.append(s[i]);

        return sb.charAt(0) == '0' ? "0" : sb.toString();
    }
}
출처: www.programmers.co.kr


'알고리즘' 카테고리의 다른 글

Two some_leet code #1  (0) 2020.01.22
(JAVA) 탑  (0) 2018.10.26
(JAVA) 문자열을 정수로 바꾸기  (0) 2018.10.25
(JAVA) 수박수박수박수박수박수?  (0) 2018.10.25
(JAVA) 소수 찾기  (0) 2018.10.25