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);
}
}
'알고리즘,PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스] [Level2] 과제진행하기 JAVA (0) | 2023.09.17 |
---|---|
[프로그래머스] [Level2] 배달JAVA (0) | 2022.03.28 |
[프로그래머스] [Level2] 양궁대회 JAVA (0) | 2022.02.14 |
[프로그래머스] [Level3] 양과늑대 JAVA (0) | 2022.02.08 |
[프로그래머스] [Level2] 주차 요금 계산JAVA (0) | 2022.02.05 |