카테고리 없음

[Java] 프로그래머스 - 가장 큰수 (정렬) 문제 풀이 정답 답안

dev-seongsu 2022. 2. 22. 10:22
import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        String answer = "";
        
        ArrayList<String> convertedArr = new ArrayList();
        //숫자를 문자로 변환해서 새 배열 생성.
        for(int number: numbers) {
            convertedArr.add(String.valueOf(number));
        }
         //두 문자열을 더 했을 때 더 큰 순서로 정렬하는 것이 포인트
        convertedArr.sort((a,b)->(a+b).compareTo(b+a));
        //정렬된 배열을 이어 붙이기
        for(String s: convertedArr) {
            answer = s + answer;
        }
        
        //예외 처리
        //결과값이 2자리 이상인데, 첫 글자가 0일 경우
        while(answer.length() > 1 && answer.charAt(0) == '0') {
            //앞에 0을 하나씩 지워나가기.
            answer = answer.substring(1); 
        }
        return answer;
    }
}