https://www.hackerrank.com/challenges/big-sorting/problem?isFullScreen=true
Big Sorting | HackerRank
Sort an array of very long numeric strings.
www.hackerrank.com
기존 풀이 방법
- String -> int
- int -> String 하는 과정에서 시간초과로 실패
public static List<String> bigSorting(List<String> unsorted) {
List<BigInteger> sorted = unsorted.stream()
.map(BigInteger::new).sorted().collect(Collectors.toList());
Collections.sort(sorted);
List<String> answer = sorted.stream()
.map(String::valueOf)
.collect(Collectors.toList());
return answer;
}
새로운 풀이 방법
- compareTo를 통해서 자릿수를 비교해가면서 오름차순 정렬
public static List<String> bigSorting(List<String> unsorted) {
Collections.sort(unsorted, (x, y) -> {
if(x.length() == y.length()){
return x.compareTo(y);
} else {
return x.length() - y.length();
}
});
return unsorted;
}
'코딩테스트 > Java' 카테고리의 다른 글
[JAVA] 정렬 - binary sort 이진 정렬 (0) | 2022.06.30 |
---|---|
[JAVA] 투포인터, 슬라이딩 윈도우 (0) | 2022.06.30 |
[JAVA] 2차원 배열 - 현재 위치의 값보다 상하좌우에서 큰 값 확인하기 (0) | 2022.06.30 |
[JAVA] DFS - 인접 행렬을 사용한 경로 탐색 (0) | 2022.06.29 |
[JAVA] DFS, BFS - 루트 노드에서 말단 노드까지 가장 최단 경로 (0) | 2022.06.29 |