- 시간 복잡도가 O(n²)인 정렬 알고리즘으로 풀 수 있습니다. 예를 들면 삽입 정렬, 거품 정렬 등이 있습니다.
https://www.acmicpc.net/problem/2750
1. 문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
2. 문제 접근
1) 수의 개수 N을 입력받는다.
2) N만큼 반복하며 수를 입력받고 이를 배열에 저장한다.
3) 선택정렬을 이용하여 배열을 오름차순으로 정렬한다.
4) 정렬된 배열을 출력한다.
- 선택정렬 : 주어진 데이터를 기준으로 사용자가 정한 기준에 맞는 최소값을 찾고 배열의 맨 앞의 값과 위치를 바꾸면서 정렬.
참조 : https://velog.io/@agfalcon/%EC%84%A0%ED%83%9D-%EC%A0%95%EB%A0%AC
3. 코드
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
// 선택 정렬 사용
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int array[] = new int[N];
for(int i=0;i<array.length;i++) {
array[i]=Integer.parseInt(br.readLine());
}
StringBuilder sb = new StringBuilder();
for(int i=0;i<array.length;i++) {
int min = 1001;
int index = -1;
for(int j=i;j<array.length;j++) {
if(min>array[j]) {
min = array[j];
index = j;
}
}
int temp = array[i];
array[i] = array[index];
array[index] = temp;
}
for(int i=0;i<array.length;i++) {
sb.append(array[i]).append("\n");
}
System.out.print(sb);
}
}
'백준 > JAVA' 카테고리의 다른 글
[백준/JAVA] 10989번 수 정렬하기3 (0) | 2023.01.21 |
---|---|
[백준/JAVA] 2751번 수 정렬하기2 (0) | 2023.01.21 |
[백준/JAVA] 반복문을 사용하지 않는 2292번 벌집 (0) | 2023.01.21 |
[백준/JAVA] 2292번 벌집 (0) | 2023.01.21 |
[백준/JAVA] 9020번 골드바흐의 추측 (0) | 2023.01.21 |