3. Baek_Joon Algorithm

이재현·2023년 11월 21일
0

Baek_Joon Algorithm

목록 보기
3/6

[Silver V] 소트인사이드 - 1427

문제 링크

성능 요약
메모리: 17696 KB, 시간: 200 ms

분류
정렬, 문자열

제출 일자
2023년 11월 21일 17:59:23

문제 설명
배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.

입력
첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.

출력
첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.


예제 입력.1

2143

예제 출력.1

4321


예제 입력.2

999998999

예제 출력.2

999999998


예제 입력.3

61423

예제 출력.3

64321


import java.io.IOException;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class BaekJoon27960 {

	public static void main(String[] args) throws IOException{
		Scanner sc = new Scanner(System.in);
		BigInteger bi = new BigInteger(sc.next());
		String str = bi.toString();
		List<Integer> arr = new ArrayList<>();
		for(int i = 0; i < str.length(); i++) {
			char ch = str.charAt(i);
			String temp = String.valueOf(ch);
			arr.add(Integer.parseInt(temp));
		}
		Collections.sort(arr);
		Collections.reverse(arr);
		for(int i = 0; i < arr.size(); i++) {
			System.out.print(arr.get(i));
		}
	}
}

  • 알고리즘 문제 접근 순서
  1. 제한 시간이 2초 이므로, Scanner를 채택했다.
  2. 입력 최댓값이 10억 이므로, BigInteger를 채택.
  3. reverse를 해줘야 하기에, ArrayList를 채택
  4. 정렬 후 reverse 해줬음.
  5. 출력

최근 코로나에 걸려, 계속 앓다가 이제야 코드를 친다.

정확히 10일 됐다. 진짜 왜 세상이 날 억까하는지..
암튼 다시 시작 1일

profile
뿌에엥

0개의 댓글