diff --git "a/4\354\243\274\354\260\250/\352\260\200\354\236\245\355\201\260\354\210\230/\352\260\200\354\236\245\355\201\260\354\210\230_\354\265\234\354\204\234\355\230\204.java" "b/4\354\243\274\354\260\250/\352\260\200\354\236\245\355\201\260\354\210\230/\352\260\200\354\236\245\355\201\260\354\210\230_\354\265\234\354\204\234\355\230\204.java" new file mode 100644 index 0000000..df2a3d2 --- /dev/null +++ "b/4\354\243\274\354\260\250/\352\260\200\354\236\245\355\201\260\354\210\230/\352\260\200\354\236\245\355\201\260\354\210\230_\354\265\234\354\204\234\355\230\204.java" @@ -0,0 +1,35 @@ +/** 가장 큰 수 +* 0 또는 양의정수 주어졌을때 이어붙여서 만들수있는 가장 큰 수 구하기 +* input : numbers[] 배열 +* output : String +* 풀이 : 숫자가 큰것부터 선택해야됨 +* CompareTo를 구현하여 두 숫자를 이어 붙였을때 큰 수가 되는걸 선택하면 된다. +* +* 구현 안하고 사전순으로 만든뒤 삽입정렬하며 예외처리 하려했다가 머리터짐..ㅜ;; +*/ +import java.util.*; +class Solution { + public String solution(int[] numbers) { + //1. int를 String으로 전환 + String[] arr = new String[numbers.length]; + for(int i=0; i(){ + @Override + public int compare(String a, String b){ + return (b+a).compareTo(a+b); + } + }); + + + //3. 예외처리 + if(arr[0].equals("0")) return "0"; + + String answer = ""; + for(String str : arr) answer+=str; + return answer; + } +}