10일차 문제인 Kth Largest Number 보충 공부 및 추가 정리를 진행했다.
얻은 것
1. 우선순위 큐(Priority Queue)의 기본, 선언, 메서드
2. 힙(Heap) 구조
3. Stream에 대한 아주 아주 간략한 이해 -> 추가 공부 필요
정수 내림차순으로 배치하기
문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
n은 1이상 8000000000 이하인 자연수입니다.
Arrays.sort(array1)로 가능Arrays.sort(array1, Collections.reverseOrder())를 사용하기 위해서는 array1가 Wrapper Class여야 한다.public long solution(long n) {
//1. n의 길이 구하기
String str = String.valueOf(n);
int length = str.length();
int[] result = new int[length];
//2. n의 자릿수 int 배열로 분할
for (int i = 0; i < length; i++) {
result[i] = str.charAt(i) - '0';
}
//3. 오름차순 정렬
Arrays.sort(result);
//4. long 만들기, 거꾸로 대입
long answer = 0;
for (int i = length - 1; i >= 0; i--) {
answer = answer * 10 + result[i];
}
return answer;
}
}
키워드
- 내림차순 정렬:
Wrapper ClassStringBuilder활용하기Arrays.sort()활용하기