[프로그래머스] Lv2.가장큰수 - Java

syeony·2025년 6월 12일
0

Java

목록 보기
13/19

문제 바로가기

배열에 있는 수를 잘 정렬해서 가장 큰수를 만들어내는 문제이다

접근방식

숫자를 하나하나 떼어내서 비교하고 정렬해야하나 복잡하게 생각했다가 도저히 모르겠어서 답을 봤다.
문자열로 바꿔서 정렬하면 된다는 간단한 엔딩...

  • 문자열배열정렬
    내림차순 = (s2 + s1).compareTo(s1 + s2);
    오름차순 = (s1 + s2).compareTo(s2 + s1);

정답코드

import java.io.*;
import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        String answer="";
        String[] strs=new String[numbers.length];
        for(int i=0;i<numbers.length;i++){
            strs[i]=String.valueOf(numbers[i]);
        }
        Arrays.sort(strs,(String a,String b)->{
            return (b+a).compareTo(a+b);
        });
        if(strs[0].equals("0")) answer="0"; //주의
        else{
            for(int i=0;i<strs.length;i++){
                answer+=strs[i];
            }
        }
        
        return answer;
    }
}

저기 주의부분은 뭐냐면 배열을 정렬했을때 만약 ["0","0","0"]이 나오면 000이 출력되는게 아니라 0으로 출력되야하므로 조건을 추가해준 것이다.

profile
모바일 어플리케이션, cross platform과 iOS에 관심이 많은 개발자 오승연입니다

0개의 댓글