백준

10989번 수 정렬하기 3

mad038 2024. 4. 18. 14:54
10989 수 정렬하기 3 //백준 
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.


● 오답  사유
- (시간초과) 계산식은 옳았지만 스캐너로는 인식 속도가 너무 느려 시간 초과

● 해결 방안
- 단순하게 계산하는 걸로 변경이 가능하고 여러 방면으로 확인해야 한다는 것을 알게 됨
- BufferedReader와 StringBuilder를 이용해 빠르게 받게함

  • 오답
더보기
import java.util.Arrays;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        long a = sc.nextLong();
        long[] aa = new long[(int) a];

        for (long i = 0; i < a; i++) {
            aa[(int) i] = sc.nextInt();
        }

        Arrays.sort(aa);

        for (long i = 0; i < a; i++) {
            System.out.println(aa[(int) i]);
        }

    }

}
  • 정답
더보기


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;


public class Main {

    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int a = Integer.parseInt(bf.readLine());
        int[] aa = new int[a];

        for (int i = 0; i < a; i++) {
            aa[i] = Integer.parseInt(bf.readLine());
        }

        Arrays.sort(aa);

        for( int good : aa){
            sb.append(good).append('\n');
        }
        System.out.println(sb);

    }

}