문제 링크
주의사항
- JAVA를 사용하여 프로그램을 사용하였습니다.
- 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{
public static void main(String[] args){
}
}
문제 설명
접근 방법
문제에 내용에서 배열에 정렬에 대한 내용이 나왔으므로 배열에 대한 정렬을 할 수 있는 명령어 Arrays.sort를 사용하였습니다.
하지만 다른 조건인 오름차순이 아닌 내림차순으로 되어있기 때문에 Collections.reverseOrder()를 사용하여야 합니다.
여기서 int형태로 배열을 만들어놓고 진행한다면 컴파일 오류가 발생할 수 있습니다. Collections는 객체를 대상으로 하는데 int형은 객체가 아닌 primitive type이어서 int대신 Integer로 선언하여 배열을 만들어 진행하였습니다.
- 통계학 지표들을 알 수 있는 함수 arrsort를 만들었습니다.
- BufferedReader를 사용하여 입력 값을 받았습니다.
- 배열정렬을 위하여 배열을 초기화 한 뒤 for문을 통해 배열에 값을 저장하였습니다.
- Arrays.sort(arr,Collections.reverseOrder())를 이용하여 내림차순으로 정렬하였습니다.
- for문을 통해 배열에 값을 bw에 저장하였습니다.
- BufferedWriter를 통해 저장된 결과를 출력하였습니다.
결과 코드
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
arrsort();
}
public static void arrsort() throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//BufferedReader를 통해 입력 값 받기
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//BufferedWriter를 통해 결과 출력
String num = br.readLine(); //입력값 받기
Integer[] arr = new Integer[num.length()]; //배열 초기화
for(int i=0;i<num.length();i++)
arr[i] = Character.getNumericValue(num.charAt(i)); //배열 값 저장
Arrays.sort(arr, Collections.reverseOrder()); //배열 내림차순 정렬
for(int i=0;i<num.length();i++)
bw.write(String.valueOf(arr[i])); //bw에 저장
bw.flush(); //결과 출력
bw.close();
br.close();
}
}
'백준' 카테고리의 다른 글
[백준] 단계별로 풀어보기(단계:12,정렬,JAVA)11651번, 좌표 정렬하기 2 (0) | 2022.01.14 |
---|---|
[백준] 단계별로 풀어보기(단계:12,정렬,JAVA)11650번, 좌표 정렬하기 (0) | 2022.01.14 |
[백준] 단계별로 풀어보기(단계:12,정렬,JAVA)2108번,통계학 (0) | 2022.01.13 |
[백준] 단계별로 풀어보기(단계:12,정렬,JAVA)10989번, 수 정렬하기 3 (0) | 2022.01.13 |
[백준] 단계별로 풀어보기(단계:12,정렬,JAVA)2751번, 수 정렬하기 2 (0) | 2022.01.13 |
댓글