[백준 | JAVA | 1427번] 소트인사이드

728x90

https://www.acmicpc.net/problem/1427

 

📝 유튜브 풀이

https://www.youtube.com/watch?v=8FVCyQkcC1s&list=PLFgS-xIWwNVU_qgeg7wz_aMCk22YppiC6&index=13
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		String str = scanner.next();
		
		int A[] = new int [str.length()];
		
		for(int i=0; i<str.length(); i++) {
			//한칸씩 가면서 잘라서 넣는다.
			A[i] = Integer.parseInt(str.substring(i,i+1));
		}
		
		//선택정렬
		for(int i=0; i<str.length(); i++) {
			//최댓값을 가장 앞에 있는 인덱스로 초기화
			int max = i;
			
			//j는 제일 앞의 값 바로 뒤에서부터 시작 
			for(int j=i+1; j<str.length(); j++) {
				
				//이번에 선택한 값이 최대값보다 크면 
				if(A[j]>A[max]) {
					
					//선택한값을 최대값에 넣어준다.
					max=j;
				}
			}
			
			// 앞의 값보다 max값이 더 크면 
			// 바꿔준다.
			if(A[i]<A[max]) {
				int tmp = A[i];
				A[i] = A[max];
				A[max] = tmp;
			}
		}
		for(int i=0; i<str.length(); i++) {
			System.out.print(A[i]);
		}
	}
}

 

📝 나의 풀이

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		
		String N = scanner.next();
		
		char[] answer = N.toCharArray();
		Arrays.sort(answer);
		
		for(int i=N.length()-1; 0<=i; i--) {
			System.out.print(answer[i]);
		}
	}
}
728x90