반응형
안녕하세요, 성조입니다.
이번 포스팅은 자바 11 버전으로 풀이됐습니다.
문제 출처
https://www.acmicpc.net/problem/1427
1427번: 소트인사이드
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
문제
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자릿수를 내림차순으로 정렬해 보자.
입력
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 자릿수를 내림차순으로 정렬한 수를 출력한다.
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int sortNumber = Integer.parseInt(br.readLine());
int array[] = new int[10];
int i=0;
for(;sortNumber>0;i++) {
array[i] = sortNumber % 10;
sortNumber /=10;
}
Arrays.sort(array);
for(int j=9; j>9-i; j--) {
System.out.print(array[j]);
}
}catch(IOException e) {
System.out.println("error");
}
}
}
풀이
1) 정렬하려는 수 N을 입력받는다.
2) N은 1,000,000,000 보다 작거나 같은 수이다.
즉, '<='의 조건을 가지게 되며, 크기는 1,000,000,000(10억) 이하이다.
3) 첫 번째 반복문에서 배열에 다음과 같이 연산한다.
이후 Arrays.sort 함수를 활용하여 [1, 2, 3, 4]로 배열을 정렬한다.
4) 배열의 크기는 10을 배정받았으므로 9부터 시작한다.(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 3번 문제에서 나온 반복문 횟수인 i를 제거하여 길이에 반복될 사이즈를 맞춰준다. 이후 [1, 2, 3, 4]로 저장된 배열을 역순으로 출력한다.
오타나 이해가 안 가는 부분이 있다면 언제든지 댓글로 얘기해 주시면 감사드리겠습니다.
다음 포스팅 때 뵙겠습니다.
반응형
'백준 - Java' 카테고리의 다른 글
[백준 - 1094][Java] 막대기 (0) | 2023.01.14 |
---|---|
[백준 - 3009][Java] 네 번째 점 (0) | 2023.01.12 |
[백준 - 1312][Java] 소수 (0) | 2023.01.08 |
[백준 - 1032][Java] 명령 프롬프트 (0) | 2023.01.07 |
[백준 - 4673][Java] 셀프 넘버 (0) | 2023.01.02 |