[프로그래머스] 가장 큰 수 (JAVA)

웅성·2023년 12월 14일
0

Algo

목록 보기
3/11
post-custom-banner

문제 풀러가기

문제 분석

시간 복잡도 상으로 순열? 어림도 없는 문제
정렬로 해결을 해야한다

난 정렬에 익숙치 않다...
ㅠㅠ 공부하고자 고른 문제




풀이 방법

맨 앞자리가 가장 큰 수가 앞에 와야 한다
-> 이게 기본 아이디어

비교하는 두 숫자를 앞, 뒤로 번갈아가며 이어붙인 것을 기준으로 비교한다는 것이 포인트




내 코드

import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        String[] arr = new String[numbers.length];
        for(int i = 0; i<numbers.length; i++) {
            arr[i] = String.valueOf(numbers[i]);
        }
        
        Arrays.sort(arr, (o1, o2) -> (o2+o1).compareTo(o1+o2));
        //System.out.println(Arrays.toString(arr));
        
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i<arr.length; i++) {
            sb.append(arr[i]);
        }
        
        String answer = String.valueOf(sb);
        if(answer.charAt(0)=='0') answer = "0";
        return answer;
    }
}

정렬에 익숙해질 준비가 됐는가..? 화이팅!
profile
'진짜 개발자'가 되기까지
post-custom-banner

0개의 댓글