코디잉

1427번: 소트인사이드 [JAVA] 본문

자료구조&알고리즘/백준

1427번: 소트인사이드 [JAVA]

yong_ღ'ᴗ'ღ 2023. 9. 16. 08:41

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

 

1427번: 소트인사이드

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

www.acmicpc.net

 

접근방식)

▶ 문자열로 받아서 char 배열 오름차순 정렬 수행

    그리고 StringBuilder에 저장한다.

    방법1) 그냥 저장한다음 sb.reverse() 로 뒤집기

    방법2) sb.insert(0, 문자열) 로 순서대로 앞에 넣기

▶ 방법3) List에 저장해서, Collections.sort(list 이름, Collections.reverseOrder()) 로 내림차순 정렬하기

 

방법1) sb.reverse() 로 뒤집기

package codingTestStudy.week1;

import java.io.*;
import java.util.*;
public class B_1427 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        char[] arr = br.readLine().toCharArray();
        Arrays.sort(arr);

        StringBuilder sb = new StringBuilder();
        for (char c : arr)
            sb.append(c);
        System.out.println(Integer.parseInt(sb.reverse().toString()));
    }
}

 

방법2) sb.insert(0, 문자열) 로 순서대로 앞에 넣기

package codingTestStudy.week1;

import java.io.*;
import java.util.*;
public class B_1427 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        char[] arr = br.readLine().toCharArray();
        Arrays.sort(arr);

        StringBuilder sb = new StringBuilder();
        for (char c : arr)
            sb.insert(0, c);
        System.out.println(Integer.parseInt(sb.toString()));
    }
}

 

방법3) Collections.sort(list 이름, Collections.reverseOrder()) 로 내림차순 정렬하기

package codingTestStudy.week1;

import java.io.*;
import java.util.*;
public class B_1427_2 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String N = br.readLine();
        List<Integer> list = new ArrayList<>();

        for (int i = 0; i < N.length(); i++)
            list.add(N.charAt(i) - '0');

        Collections.sort(list, Collections.reverseOrder());

        StringBuilder sb = new StringBuilder();
        for (int i : list)
            sb.append(i);
        System.out.println(Integer.parseInt(sb.toString()));
    }
}
Comments