반응형
[1] 백준 카테고리
단계별로 풀어보기
정렬
5단계 소트인사이드
[2] 문제
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.
1. 입력
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
2. 출력
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.
3. 예제 입력 1
2143
4. 예제 출력 1
4321
[3] 정답
1. 정답 해설 미포함
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
public class Test01 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] arr;
int N = Integer.parseInt(br.readLine());
int length = (int)(Math.log10(N)+1);
arr = new int[length];
for(int i=0; i<length; i++) {
arr[i]=N%10;
N /= 10;
}
Arrays.sort(arr);
for(int i=length-1; i>-1; i--) {
System.out.print(arr[i]);
}
}
}
2.정답 해설 포함
import java.io.BufferedReader;
/* BufferedReader 사용을 위해서 java.io.BufferedReader 클래스를 import 한다.
Enter를 경계로 인식하고 받은 데이터는 String으로 고정된다.*/
import java.io.InputStreamReader;
/* InputStreamReader 사용을 위해서 java.io.InputStreamReader 클래스를 import 한다.
byte 단위 데이터를 문자 단위 데이터로 처리할 수 있도록 변환해주기 위해서
InputStreamReader를 사용한다. */
import java.io.IOException;
// IOException 사용을 위해서 java.io.IOException 클래스를 import 한다.
import java.util.Arrays;
// 배열을 다루기 위한 메소드를 사용하기 위해서 java.util.Arrays 클래스를 import 한다.
public class Main {
// 접근제어자 public으로 Main 클래스를 선언한다.
public static void main(String[] args) throws IOException {
// 접근제어자 public으로 메모리에 상주하게 return이 없이 main 함수를 선언한다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// BufferedReader 객체 br를 선언한다.
int[] arr;
// 배열 arr를 선언한다.
int N = Integer.parseInt(br.readLine());
// int형 변수 N를 선언하고 값을 개행으로 입력받는다.
int length = (int)(Math.log10(N)+1);
// int 형 변수 length를 선언하고 변수 N의 자리수를 입력받는다.
arr = new int[length];
// 배열 arr의 길이를 변수 length로 한다.
for(int i=0; i<length; i++) {
// for 문을 선언한다.
arr[i]=N%10;
// N을 10으로 나눈 나머지를 arr[i]에 저장한다.
N /= 10;
// N을 10으로 나눈 몫을 변수 N에 저장한다.
}
Arrays.sort(arr);
// 배열 arr를 오름차순으로 배열 한다.
for(int i=length-1; i>-1; i--) {
// for문을 선언한다.
System.out.print(arr[i]);
// 변수 arr[i]를 출력한다.
}
}
}
자리수를 내림 차순으로 정렬해 주는 문제이다. Arrays.sort를 이용해서 문제를 해결하였다.
자리수를 구하기 위해서 Math 클래스의 log10 메소드를 사용하였다.
[4] 결과
반응형
'프로그래밍 > 백준 문제 풀이(자바)' 카테고리의 다른 글
백준 11650번 자바 문제 답/해설(좌표 정렬하기 문제) (0) | 2022.01.17 |
---|---|
백준 11650번 자바 문제 답/해설(좌표 정렬하기 문제) (0) | 2022.01.16 |
백준 2108번 자바 문제 답/해설(통계학 문제) (0) | 2022.01.14 |
백준 10989번 자바 문제 답/해설(수 정렬하기 3 문제) (0) | 2022.01.13 |
백준 2751번 자바 문제 답/해설(수 정렬하기 2 문제) (0) | 2022.01.12 |