고코딩
[백준 2750번] 수 정렬하기 본문
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
예제입력
입력 | 출력 |
---|---|
5 5 2 3 4 1 |
1 2 3 4 5 |
정답
사실 이 문제는 자바 공부하다가 Collection
에서 sort()
함수 있길래 사용해 봤다. sort()
함수도 결국에는 피벗 정렬을 이용해서 정려을 하는 방식이였다. 이 문제에서 속도를 줄이고 싶으면 피벗 정렬과 BufferedReader BufferedWriter
를 사용하면 될것이다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
private static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
int n = Integer.parseInt(br.readLine());
List<Integer> list = new ArrayList<>();
for(int i=0;i<n;i++){
int number = Integer.parseInt(br.readLine());
list.add(number);
}
Collections.sort(list);
for(int sortedNumber : list){
sb.append(sortedNumber).append('\n');
}
System.out.println(sb);
}
}
..
'코딩테스트' 카테고리의 다른 글
[백준 16956번] 늑대와 양 (0) | 2021.05.27 |
---|---|
[백준 2204번] 도비의 난독증 테스트 (0) | 2021.05.22 |
[백준 1463번] 1로 만들기 (0) | 2021.05.06 |
[백준 16954번] 움직이는 미로 탈출(java) (0) | 2021.02.09 |
[백준 16993번] 벽 부수고 이동하기 3 (0) | 2021.02.05 |