티스토리 뷰

728x90

문제

- N개의 수가 주어졌을 때, 오름차순으로 정렬

- 절댓값이 1,000,000보다 작거나 같은 N(1<=N<=1,000,000)개의 정수

- 수는 중복되지 않음

 

해결방법

처음에는 배열에 넣고 Arrays.sort() 메서드를 이용하여 정렬을 하려고 하였으나, 시간초과로 통과하지 못했다. 그래서 LinkedList<Integer>를 만들어 주어진 숫자들을 추가하고 Collections.sort() 메서드를 이용하여 정렬한 뒤, StringBuilder로 한 번에 출력하였다. StringBuilder를 사용하지 않고 출력해도 시간초과가 발생하였다.

 

코드

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

class Main{
    public static void main(String[] args) throws Exception {
       BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
       StringBuilder sb = new StringBuilder();
       int N = Integer.parseInt(br.readLine());
       LinkedList<Integer> nums = new LinkedList<>();

       for(int i = 0; i<N; i++){
           nums.add(Integer.parseInt(br.readLine()));	// 입력 받은 숫자 추가
       }

       Collections.sort(nums);				// 숫자 정렬

       for(int i = 0; i<N; i++){
           sb.append(nums.poll()).append("\n");		// StringBuilder에 하나씩 출력 추가
       }

        System.out.println(sb);				// 전체 출력
    }
}
728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday