728x90
○ 문제
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
○ 입력
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
○ 출력
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
○ 예제 입력
2143
○ 예제 출력
4321
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.Arrays;
//import java.util.Collections;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//문자 배열 생성
String num = br.readLine();
char[] arr = new char[num.length()];
for (int i = 0; i < arr.length; i++) {
arr[i] = num.charAt(i);
}
//Wrapper class boxing => char 자료형은 생성불가
//Character boxArr = Arrays.stream(arr).boxed().toArray(Character[]::new);
//Arrays.sort(boxArr, Collections.reverseOrder());
//내림차순 정렬 불가하므로 정렬 역사용
Arrays.sort(arr);
String result = new String();
for (int i = arr.length-1; i >= 0; i--) {
result += String.valueOf(arr[i]);
}
bw.write(result);
bw.flush();
bw.close();
}
}
○ 확인
- primitive Type을 Wrapper클래스로 박싱해주어야 reverseOrder 사용가능.
- Integer[] tmp = Arrays.stream(intArray).boxed().toArray(Integer[]::new);
- Arrays 클래스에 char 자료형은 오버로드가 없다
728x90
'○ 기술면접 > 알고리즘' 카테고리의 다른 글
| 이진탐색: Hunt The Rabbit (백준 13777) (0) | 2023.03.24 |
|---|---|
| 이진탐색: 숫자 카드 (백준 10815) (0) | 2023.03.24 |
| [알고리즘] 이진탐색: 범위를 반씩 좁혀가는 탐색 (0) | 2023.03.23 |
| 정렬: 일곱 난쟁이 (백준 2309) (0) | 2023.03.23 |
| 정렬: 단어 정렬 (백준 1181) (0) | 2023.03.23 |
| 정렬: 세 수 (백준 10817) (0) | 2023.03.23 |
| 정렬: 수 정렬하기 (백준 2750) (0) | 2023.03.23 |
| 구현: 단어의 개수 (백준 1152) (0) | 2023.03.23 |