알고리즘왕/Programmers
[프로그래머스/JAVA] 가장 큰 수
찌 ㅋ
2021. 5. 4. 23:49
풀이
- int 배열을 String 배열로 변경
- 문자열을 comparator로 정렬
str1 + str2와str2 + str1를 비교 둘 중 더 크게 만드는 놈을 앞으로
- 앞에서부터 Stringbuilder에 넣어서 tostring으로 반환
- 주어진 모든 숫자가 0일 경우 반환값은 "0"이어야 함
비고
- ㅋㅋ ㅠㅠㅠ 한줄이면 끝나는 것을./... 정말 어려웠다 ㅠㅠ
더보기
package 연습문제.P42746_가장큰수;
import java.util.Arrays;
import java.util.Comparator;
public class Solution {
static public String solution(int[] numbers) {
StringBuilder answer = new StringBuilder();
String[] n = new String[numbers.length];
for (int i = 0; i < numbers.length; i++) {
n[i] = "" + numbers[i];
}
Arrays.sort(n, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o2 + o1).compareTo(o1 + o2);
}
});
if (n[0].equals("0"))
return "0";
for (int i = 0; i < n.length; i++) {
answer.append(n[i]);
}
return answer.toString();
}
public static void main(String[] args) {
int[] n = { 6, 10, 2 };
System.out.println(solution(n));
int[] n2 = { 3, 30, 34, 5, 9 };
System.out.println(solution(n2));
int[] n3 = { 21, 212 };
System.out.println(solution(n3));
}
}