You will be fine

5. 가장 큰 수 (프로그래머스)

by BFine
반응형

가. 문제파악

 1. 유형 : 정렬

    -   이문제는 처음에 접근을 뒷자리가 큰순으로 정렬 했다가 망해버렸다 ... 

    -   어떻게 접근해야하는지 감이 안와서 답안을 참고하여 풀었다.

 

나. 코드 

 1. 풀이 :  두개를 더해서 비교 후 정렬!

    -   생각보다 단순하다. 두문자를 더해서 미리 비교해서 정렬 하는 것 이다!

           => {10,2,1} 이면  10, 2 -> 210 > 102 / 2 ,1  -> 21 > 12 / 1,10 -> 110 > 102  정렬 {2,1,10}  

    -   정렬된배열을 한줄로 만들면 된다. 그리고 0일경우 000 이렇게 될수있으니 예외 처리 필수!


import java.util.Arrays;
import java.util.stream.Collectors;

public class Solution {

    public String solution(int[] numbers) {
        String collect = Arrays.stream(numbers)
        .boxed()
        .map(String::valueOf)
        .sorted(((o1, o2) 
        ->Integer.compare(Integer.parseInt(o2+o1),Integer.parseInt(o1+o2)) ))
        .collect(Collectors.joining());
        
        return collect.charAt(0) == '0'?"0":collect;
    }

    
}
반응형

블로그의 정보

57개월 BackEnd

BFine

활동하기