in.add()
[42746] 가장 큰 수 본문
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42746
코딩테스트 연습 - 가장 큰 수
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰
programmers.co.kr
문제 해결 방법
numbers 모두 list에 담아준 후, 문자열+문자열 값을 int로 변환했을 때를 비교하여 오름차순으로 정렬했다.
마지막 테스트 케이스를 틀렸는데, list의 첫 번째 값이 "0"이라면 "0"을 return 하는 것을 추가해 통과할 수 있었다.
import java.util.*;
class Solution {
public String solution(int[] numbers) {
List<String> list = new ArrayList<>();
for(int i = 0; i < numbers.length; i++)
list.add(Integer.toString(numbers[i]));
Collections.sort(list, new Comparator<String>(){
public int compare(String a, String b){
int x = Integer.parseInt(a + b);
int y = Integer.parseInt(b + a);
return y - x;
}
});
if(list.get(0).equals("0"))
return "0";
String answer = "";
for(int i = 0; i < list.size(); i++)
answer += list.get(i);
return answer;
}
}'Algorithm > Programmers' 카테고리의 다른 글
| [84512] 5주차_모음사전 (0) | 2021.09.15 |
|---|---|
| [42883] 큰 수 만들기 (0) | 2021.09.14 |
| [42885] 구명보트 (0) | 2021.09.08 |
| [72412] 순위 검색 (0) | 2021.09.07 |
| [72411] 메뉴 리뉴얼 (0) | 2021.09.06 |
Comments