백준 - Java

[백준 - 1427][Java] 소트인사이드

SeongJo 2023. 1. 11. 01:30
반응형

안녕하세요, 성조입니다.

이번 포스팅은 자바 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]로 저장된 배열을 역순으로 출력한다. 

 

 

 


오타나 이해가 안 가는 부분이 있다면 언제든지 댓글로 얘기해 주시면 감사드리겠습니다.

다음 포스팅 때 뵙겠습니다.

반응형