‡ CODING TEST STUDY ‡/º 프로그래머스
[프로그래머스 | Java Lv.2] [복습] 가장 큰 수 (정렬)
Trudy | 송연
2024. 6. 11. 02:13
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42746
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
접근
Comparator override를 다음과 같이 람다로 표현해서 더 깔끔하게 해보았다
Arrays.sort(s, (o1, o2)-> (o2+o1).compareTo(o1+o2));
Arrays.sort(s, new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
return (o1+o2).compareTo(o2+o1);
}
});
최종 코드
package week6.baek.sort;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
public class BiggestNum {
public static 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, (o1, o2)-> (o2+o1).compareTo(o1+o2));
if(s[0].equals("0")) return "0";
StringBuilder sb = new StringBuilder();
for (String str : s) {
sb.append(str);
}
return sb.toString();
}
public static void main(String[] args) {
int[] numbers = {6, 10, 2};
System.out.println(solution(numbers));
}
}