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 Class
StringBuilder
활용하기Arrays.sort()
활용하기