계단을 오르듯이

[JAVA] 가장 큰 수 본문

알고리즘/프로그래머스

[JAVA] 가장 큰 수

happyAyun 2022. 1. 7. 21:13

처음에는 먼저 비교 후 길이가 다를시 어떻게 비교를...하지...하다가 고민끝에 정답을 찾아보았다.

오..역시..천재들이 많다....!

비교하는 값 A와 B를 앞뒤로 더해서 내림차순을 구한다!!!

주의!! 문제에서는 0 또는 양의 정수라고 나와있다.

따라서 모든 수가 0만이 존재할 때 000... 이 될 수 있음을 유의하여 0만을 출력하도록 하는 조건문을 추가해야한다.

언제나 문제는 잘 읽고 문제 속에서 모든 경우의 수를... 생각해야하는 알고리즴~!

 

import java.util.*;

class Solution {
    public String solution(int[] numbers) {
        String answer = "";
        String[] str = new String[numbers.length];
        for(int i=0;i<numbers.length;i++){
            str[i] = numbers[i]+"";
        }
        Arrays.sort(str, new Comparator<String>(){
            @Override
            public int compare(String o1, String o2){
                return (o2+o1).compareTo(o1+o2); // 내림차순
            }
        });
        // 주어진 정수의 모든 값이 0만 주어진 경우 => 00000.... = 0 이므로
        if(str[0].equals("0")) answer = "0";
        else{
            for(int i=0;i<str.length;i++){
                answer += str[i];
            }
        }
        return answer;
    }
}

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[JAVA] 네트워크  (0) 2022.01.08
[JAVA] 타겟 넘버  (0) 2022.01.08
[JAVA] 소수 찾기(완전탐색)  (0) 2022.01.07
[JAVA] 기능 개발  (0) 2022.01.07
[JAVA] 위장  (0) 2022.01.07