프로그래머스 - 가장 큰수 (Level 2)
2024. 1. 24. 19:54ㆍ코딩테스트 정리(자바)
728x90
1) int 배열을 String 배열로 변환
2) 두 문자열을 이어 붙여서 비교하여 내림차순으로 정렬시킨다.
3) 정렬된 배열의 첫번째 원소가 0이라면 모든 원소가 0이므로 0 리턴
4) 아니라면 모든 문자열 이어 붙여서 최종 반환
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String[] str=new String[numbers.length];
for(int i=0;i<numbers.length;i++){ //int-> string으로 변환
str[i]=Integer.toString(numbers[i]);
}
Arrays.sort(str, (o1,o2) -> {
return (o2+o1).compareTo(o1+o2);
//두 문자열을 이어붙혀서 비교
});
if(str[0].equals("0")) //모두 0인경우 0 출력
return "0";
StringBuilder sb=new StringBuilder();
for(String s:str){
sb.append(s); //이어붙혀서 출력하도록
}
return sb.toString();
}
}
1. compareTo 정렬 기준
- 리턴 결과가 양수
: 주체객체가 더 크고 비교객체가 더 작다고 판별 -> 두 객체 스왑 - 리턴 결과가 0
: 두 객체가 동일하다고 판별 -> 유지 - 리턴 결과가 음수
: 주체객체가 더 작고 비교객체가 더 크다고 판별 -> 유지
2. int형을 String으로 변환
Integer.toString(int 숫자);
728x90
'코딩테스트 정리(자바)' 카테고리의 다른 글
| 프로그래머스 - 없는 숫자 더하기(Level 1) (2) | 2024.01.28 |
|---|---|
| 프로그래머스 - 중복된 문자 제거(Level 1) (0) | 2024.01.25 |
| 프로그래머스 - 문자열 내 마음대로 정렬하기 (Level 1) (2) | 2024.01.23 |
| 프로그래머스 - 전화번호 목록 (Level 2) (0) | 2024.01.23 |
| 프로그래머스 - 문자열 내림차순으로 배치하기(Level 1) (0) | 2024.01.22 |