Simple&Natural
정렬 - 가장 큰 수 본문
728x90
Java 풀이
한 가지 개선할 점이 있다면,
내 코드에서는 set을 만들어 0 으로만 이루어져 있는지 확인하는 방법을 썼는데
0 으로만 이루어진 수를 체크할 때 단순히 첫 번째 원소가 0 인지만 확인하면 된다.
또한 우선순위 큐를 사용하는 방법도 있는데 로직상으로는 comparator와 유사하다.
내 코드들을 보면 메소드 내 임시 변수 사용량이 많아 불필요한 메모리 사용이 많아 보이는 것 같다.
일단 제한된 시간 안에 테스트를 통과하는 것이 목표인 만큼 효율성이나 깔끔한 코드보다는 직관적으로 떠오르는 풀이를 통해 정확도를 우선적으로 고려하고 있고 나중에 코드리뷰를 하며 개선 예정이다.
import java.util.*;
class Solution {
public String solution(int[] numbers) {
StringBuilder answer = new StringBuilder();
Integer[] integers = Arrays.stream(numbers).boxed().toArray(Integer[]::new);
Arrays.sort(integers, (num1, num2) -> {
int sum1 = Integer.parseInt(num1 + num2.toString());
int sum2 = Integer.parseInt(num2 + num1.toString());
return Integer.compare(sum1, sum2);
});
List<Integer> integerList = Arrays.asList(integers);
Collections.reverse(integerList);
HashSet<Integer> set = new HashSet<>(integerList);
if (set.size() == 1 && set.toArray(new Integer[0])[0]==0) {
return "0";
}
for (Integer number : integers) {
answer.append(number);
}
return answer.toString();
}
}
728x90
'코딩테스트 풀이 > 프로그래머스' 카테고리의 다른 글
해시 - 위장 (0) | 2022.05.03 |
---|---|
정렬 - H-index (0) | 2022.05.01 |
Hash - 전화번호 목록 (0) | 2022.04.24 |
Hash - 베스트 앨범 (0) | 2022.04.24 |
Hash - 완주하지 못한 선수 (0) | 2022.04.23 |