728x90
2751번: 수 정렬하기 2
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
www.acmicpc.net
너무 간단해 보인다 ! 배열에 넣고 Arrays.sort이용해 오름차순 정렬하면 될 것 같다 !
는 시간초과 ㅋㅋ
package algorithm;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main{
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 num = Integer.parseInt(br.readLine());
int arr[] = new int[num];
for(int i=0;i<num;i++) {
arr[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(arr);
for(int i=0;i<num;i++) {
System.out.println(arr[i]);
}
}
}
흠 여기서 뭘 더 쓸 수가 있지 ?
출력을 배열에서 돌면서 출력이 아니고 StringBuilder를 사용해봤다.
맞음 ! ㅎㅎ
package algorithm;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
int arr[] = new int[num];
for(int i=0;i<num;i++) {
arr[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(arr);
StringBuilder sb = new StringBuilder();
for(int i=0;i<num;i++) {
sb.append(arr[i]+"\n");
}
System.out.println(sb);
}
}
근데 이보다 더 빨리 할 수 있을까?
다른사람들은 힙정렬, 병합정렬등 많이 쓴 것 같네 ....
정렬도 공부를 해야하나보다 ㅠ
728x90
'알고리즘 > 백준' 카테고리의 다른 글
2798번 문제 : 블랙잭 (0) | 2023.04.03 |
---|---|
2775번 문제 : 부녀회장이 될테야 (0) | 2023.04.02 |
2609번 문제 : 최대공약수와 최소공배수 (0) | 2023.03.30 |
2164번 문제 : 카드 2 (0) | 2023.03.29 |
2108번 문제 : 통계학 (0) | 2023.03.29 |