728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42746
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
메모리: 145 MB, 시간: 212.04 ms
사용 알고리즘: 정렬
import java.util.*;
class Solution {
public String solution(int[] numbers) {
// 정렬을 위한 리스트
List<String> list = new ArrayList<>();
boolean flag = true; // 배열에 0만 있는지 채크
for(int i = 0; i < numbers.length; i++) {
list.add(String.valueOf(numbers[i]));
if(numbers[i] != 0) flag = false;
}
// 배열에 0만 있었다면 바로 "0" 리턴
if(flag) return "0";
// 두 수를 합쳤을 때,
// 앞에 놓였을 때 더 큰 수가 되는 수가 우선순위가 더 높음
Collections.sort(list, (o1, o2) -> {
int o1o2 = Integer.parseInt(o1 + o2);
int o2o1 = Integer.parseInt(o2 + o1);
return o2o1 - o1o2;
});
StringBuilder answer = new StringBuilder();
for(int i = 0; i < list.size(); i++) answer.append(list.get(i));
return answer.toString();
}
}728x90
'Problem Solving > Programmers' 카테고리의 다른 글
| [프로그래머스, 120896] 한 번만 등장한 문자 (java) (0) | 2025.02.17 |
|---|---|
| [프로그래머스, 43238] 입국심사 (java) (0) | 2025.02.16 |
| [프로그래머스, 181878] 원하는 문자열 찾기 (java) (0) | 2025.02.16 |
| [프로그래머스, 181879] 길이에 따른 연산 (java) (0) | 2025.02.16 |
| [프로그래머스, 181880] 1로 만들기 (java) (0) | 2025.02.16 |