본문 바로가기

Algorithm/Baekjoon

[백준_JAVA_알고리즘] 1427 소트인사이드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;

import javax.sound.sampled.ReverbType;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out));
		
		String num = bufferedReader.readLine();
		long[] N = new long[num.length()]; // 배열 초기화
		long tmp = 0;
		
		for(int i = 0; i < num.length(); i++)
			N[i] = (long)(num.charAt(i)-'0');
		
		Arrays.sort(N);
		for(int i = 0; i < num.length(); i++) {
			for(int j = 0; j < num.length()-i-1; j++) {
				if(N[j] < N[j+1]) {
					tmp = N[j];
					N[j] = N[j+1];
					N[j+1] = tmp;
				}
			}
		}
		
		for(int i = 0; i < num.length(); i++)
			bufferedWriter.write(N[i]+"");
		
		bufferedWriter.flush();
		bufferedReader.close();
		bufferedWriter.close();
	}
}

 

"N은 1,000,000,000보다 작거나 같은 자연수이다." 라는 조건 때문에 자료형을 long으로 선언했다.

Buffer으로 빠른 입출력을 구현했다.

num.charAt(i)에서 문자로 값을 입력받기 때문에 -'0'을 해주면 된다.

자바 내장함수 Arrays.sort()을 이용하여 값을 정렬하고 아래에 있는 이중 for문(버블 정렬) 코드로 내림차순을 구현했다.