반응형
https://www.acmicpc.net/problem/1427
- 문제
- 문제 풀이
백준 1427번 소트인사이드는 실버 5 난이도의 문자열 및 정렬 문제이다. 이 문제에서는 숫자 N이 주어진다. 그리고 이 N의 자릿수들을 내림차순으로 정렬한 뒤에 출력해주기만 하면 된다. 즉, 예를 들어서 2143이 들어오면 4321로 출력해주면 된다.
자바에서는 내림차순으로 정렬을 할 때 마찬가지로 Arrays.sort() 함수를 사용하기는 한다. 다만, 매개 변수로 정렬할 배열과 Collections.reverseOrder()를 포함시켜 주어야 한다. 이 Collections.reverseOrder()는 배열을 내림차순으로 정렬하는 역할을 한다.
다만, int형 배열을 내림차순으로 정렬을 하려고 하면 다음과 같은 오류가 뜬다.
즉, java: no suitable method found for sort(int[],java.util.Comparator<java.lang.Object>) 에러가 뜬다. 이 오류가 생기는 이유는 int형 배열로는 Collections.reverseOrder()를 사용할 수 없기 때문이다. 이 에러를 해결하려면 배열을 Integer 형으로 만들어 주면 된다.
자세한 코드는 밑에서 참고하면 되겠다.
- 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int n = s.length();
Integer[] arr = new Integer[n]; //내림차순으로 정렬할 배열. int형이 아닌 Integer형으로 선언
for (int i = 0; i < n; i++) {
arr[i] = Character.getNumericValue(s.charAt(i)); //배열에 수 저장
}
Arrays.sort(arr, Collections.reverseOrder()); //내림차순으로 정렬
for (int i = 0; i < n; i++) {
System.out.print(arr[i]);
}
}
}
반응형
'백준' 카테고리의 다른 글
[백준] 10845번 : 큐 – JAVA [자바] (0) | 2022.07.26 |
---|---|
[백준] 2752번 : 세수정렬 – JAVA [자바] (0) | 2022.07.26 |
[백준] 10989번 : 수 정렬하기 3 – JAVA [자바] (0) | 2022.07.24 |
[백준] 7568번 : 덩치 – JAVA [자바] (0) | 2022.07.22 |
[백준] 2581번 : 소수 – JAVA [자바] (0) | 2022.07.16 |
댓글