수 정렬하기 2
시간 제한메모리 제한제출정답맞은 사람정답 비율
2 초 | 256 MB | 147950 | 39870 | 27221 | 29.965% |
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
2750 풀이
수 정렬은 Arrays.sort를 이용하면 곧바로 해결된다
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static int[] arr;
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] arr = new int[N];
for(int i=0; i<N;i++)arr[i]=sc.nextInt();
Arrays.sort(arr);
for(int i=0; i<N;i++)System.out.println(arr[i]);
}}
2751 풀이
정렬할 수가 매우 많을 때 Scanner를 사용하면 주어진 시간 안에 연산할 수 없을 것이다.
역시 Buffer를 사용한 풀이를 한다. BufferedReader와 BufferedWriter 클래스를 사용해 풀이한다.
import java.io.*;
import java.util.Arrays;
public class Main {
static int[] arr;
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
for(int i=0; i<N;i++)arr[i]=Integer.parseInt(br.readLine());
Arrays.sort(arr);
for(int i=0; i<N;i++)bw.write(arr[i]+"\n");
bw.flush();
bw.close();
}}
'Study > Baekjoon' 카테고리의 다른 글
Baekjoon1427: 소트인사이드, System.in.read(); (0) | 2021.11.05 |
---|---|
Baekjoon10989: 수 정렬하기 3, 카운팅 정렬 (0) | 2021.11.04 |
Baekjoon13305*: 주유소 (0) | 2021.11.02 |
Baekjoon1541: 잃어버린 괄호 (0) | 2021.11.02 |
Baekjoon1931*: 회의실 배정, 시간 초과와 그리디 알고리즘 (0) | 2021.11.01 |