Algorithm/문제풀이

[LeetCode#179] Largest Number

gilbert9172 2024. 9. 29. 17:01

❒ Description


날짜 2024.09.29 (일)
레벨 Medium
제목 Largest Number
링크 https://leetcode.com/problems/largest-number/description/
알고리즘 삽입 정렬
시간 복잡도 O(NlonN)

 

 

 

 

❒ 문제 및 로직 분석


요구사항 : 주어진 배열을 가장 큰 하나의  숫자로 반환하라.

 

주어진 두 수 a,b를 더해서 비교해야 한다. 

  • ab 와 ba를 비교 후 내림차순 정렬

 

 

 

 

 

❒ Solution


public String largestNumber(int[] nums) {
    String[] numsStr = new String[nums.length];
    for (int i = 0; i < nums.length; i++) numsStr[i] = String.valueOf(nums[i]);
    Arrays.sort(nums, new StringComparator());
    return nums.length == 0 ? "0" : convertToString(numsStr);
}

private convertToString(String[] numsStr) {
    StringBuilder builder = new StringBuilder();
    for (String num : strArr) {
        result.append(num);
    }
    return result.toString();
}

public class StringComparator implements Comparator<String> {
    @Override
    public int compare(String a, String b) {
        if (a.length == b.length) {
            return b.compareTo(a);
        } else {
            String ab = a + b;
            String ba = b + a;
        }
    }
}