본문 바로가기

백준

백준 문제 풀이 1427 | JAVA

1427번: 소트인사이드 (acmicpc.net)

 

 

1) String으로 받아서 int배열에 넣기

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String n = br.readLine();
        int[] arr = new int[n.length()];
        for(int i = 0; i<arr.length; i++)
            arr[i] = n.charAt(i) - '0';
        for(int i = 0; i<arr.length; i++){
            int max = i;
            for(int j = i+1; j<arr.length; j++){
                if(arr[j]> arr[max])
                    max = j;
            }
            if(arr[i] < arr[max]){
                int temp = arr[i];
                arr[i] = arr[max];
                arr[max] = temp;
            }
        }
        for (int j : arr) sb.append(j);
        System.out.print(sb.toString());
        br.close();
    }
}

 

2) String으로 받아서 ArrayList 의 sort함수 이용

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        
        String[] str = br.readLine().split("");
        List<Integer> list = new ArrayList<>();
        
        for(String s : str) list.add(Integer.parseInt(s));
        list.sort((a,b)->b-a);
        
        for(Integer a:list) sb.append(a);
        
        System.out.println(sb);
        br.close();
    }
}

 

3)Collections.max 사용

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        String[] str = br.readLine().split("");
        List<Integer> list = new ArrayList<>();

        for(String s : str) list.add(Integer.parseInt(s));
        for(String s : str){
            int max = Collections.max(list);
            list.remove((Integer) max);
            sb.append(max);
        }
        System.out.println(sb);
        br.close();
    }
}

'백준' 카테고리의 다른 글

백준 풀이 10989 | JAVA  (0) 2024.06.26
백준 문제 풀이 2751 | JAVA  (0) 2024.06.25
백준 문제 풀이 25305 | JAVA  (0) 2024.06.25
백준 문제 풀이 2587 | JAVA  (0) 2024.06.25
백준 문제 풀이 2750 | JAVA  (0) 2024.06.25