본문 바로가기
알고리즘/문제풀이

[Java] 백준 2751 : 수 정렬하기 2

by abcodef 2021. 12. 13.

🔗 문제 내용

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

 

2751번: 수 정렬하기 2

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

🌱 문제 풀이 방법

이전 문제와 다르게 범위가 매우 커졌다.

따라서 시간초과를 조심해야 한다!

🤔 공부가 필요한 부분

문제를 제대로 안 읽어서 중복되는 경우 중복되는 수를 제거해서 시간이 더 오래 걸렸다.

StringBuilder 사용을 잊지 말자! 

System.out.println보다 효율적이다.

 

실수한 흔적

💻 코드

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();

        StringBuilder sb = new StringBuilder();

        List<Integer> arr = new ArrayList<>();

        for (int i = 0; i < N; i++) {
            arr.add(sc.nextInt());
        }
        Collections.sort(arr);

        for (int i = 0; i < N; i++) {
            sb.append(arr.get(i)).append('\n');
        }
        System.out.println(sb);
        sc.close();
    }
}

댓글