티스토리 뷰

Algorithm

[백준] S5 2751 수 정렬하기 2 (java)

코딩브론즈 2021. 8. 22. 17:45

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

 

2751번: 수 정렬하기 2

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

www.acmicpc.net

 

풀이

 

1) ArrayList에 입력을 다 담는다.

2) list를 정렬한다.

3) list를 출력한다.

 

주의사항

 

1) Arrays.sort() 시 시간초과이다.

2) print 로 출력하면 시간초과이다.

 

package com.baekJoon;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;

public class BJ_S5_2751_수정렬하기2 {
	static BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
	static BufferedWriter output = new BufferedWriter(new OutputStreamWriter(System.out));
	static StringTokenizer tokens;
	static int N;
	public static void main(String[] args) throws NumberFormatException, IOException {
		input = new BufferedReader(new StringReader(src));
		N = Integer.parseInt(input.readLine());
		List<Integer> list = new ArrayList<>();
		for(int i=0; i<N; i++) {
			list.add(Integer.parseInt(input.readLine()));
		}
		Collections.sort(list);
		for(int x : list) {
			output.append(x+"\n");
		}
		output.close();
	}

	static String src =
			"5\r\n" + 
			"5\r\n" + 
			"4\r\n" + 
			"3\r\n" + 
			"2\r\n" + 
			"1";
}

 

후기

 

 정말 쉬운 문제이지만 4번이나 틀린 문제였고 그 과정속에 새로운 사실을 알게 되었다.

정렬에 대해 조금더 알게되었고 이 내용은 추후에 따로 포스트를 작성할 생각이다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함