본문 바로가기

알고리즘,PS/프로그래머스

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

https://school.programmers.co.kr/learn/courses/30/lessons/42746

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

📝문제

📝풀이

가장 큰 수를 만들기 위해서 배열안의 수를 큰 수가 될 수 있는 조건으로 정렬을 해야한다.
만약 [ 3, 30, 34 ] 안의 우위를 정할 때 기준운 문제에 나와 있듯이 각각 수를 이어 붙였을 때 제일 큰 수로 하면 되므로 정렬 조건은 (s1, s2) -> (s2 + s1).compareTo(s1 + s2)

추가로 [0, 0, 0, 0] 일 경우엔 0만 리턴하도록 예외처리.
import java.util.Arrays;
import java.util.List;
class Solution {
    public String solution(int[] numbers) {
        List<String> result = Arrays.stream(numbers)
                .mapToObj(String::valueOf)
                .sorted((s1, s2) -> (s2 + s1).compareTo(s1 + s2))
                .toList();
        return result.get(0).equals("0") ? "0" : String.join("", result);
    }
}

Recent Posts
Popular Posts
Archives
Visits
Today
Yesterday