N
개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)
이 주어진다. 둘째 줄부터 N
개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
첫째 줄부터 N
개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다..
5
5
2
3
4
1
1
2
3
4
5
-문제의 오타를 찾은 사람: lazy_ren
import java.util.Arrays;
import java.util.Scanner;
public class Code2750 {
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
int N=scanner.nextInt();
int[] number=new int[N];
for(int i=0;i<N;i++){
number[i]=scanner.nextInt();
}
Arrays.sort(number);
for(int i=0;i<N;i++){
System.out.println(number[i]);
}
}
}
import java.util.Arrays;
import java.util.Scanner;
public class Code2750 {
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
int N=scanner.nextInt();
int[] number=new int[N];
for(int i=0;i<N;i++){
number[i]=scanner.nextInt();
}
// Arrays.sort(number);
// for(int i=0;i<N;i++){
// System.out.println(number[i]);
// }
int temp=0;
for(int i=0;i<N;i++){
for(int j=i+1;j<N;j++){
if(number[i]>number[j]){
temp=number[i];
number[i]=number[j];
number[j]=temp;
}
}
}
for(int i=0;i<N;i++){
System.out.println(number[i]);
}
}
}
시간복잡도가 O(n^2)
인 정렬 알고리즘으로 풀 수 있다.
삽입정렬, 선택정렬, 버블정렬
등이 있다.
그 중에 내가 푼 방법은 선택정렬
이다.
(Arrays.sort()
로 풀면 훨씬 쉽다)