반응형
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
int[] arr = new int[num];
for(int i=0; i<num; i++){
arr[i] = scanner.nextInt();
}
for(int i=0; i<num-1; i++){
for(int j=0; j<num-1-i; j++){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int i=0; i<num; i++){
System.out.println(arr[i]);
}
}
}
▶ int num = scanner.nextInt() : 수의 개수를 사용자로부터 입력받아 변수 num에 저장함
▶ int[] arr = new int[num] : 정렬할 배열 arr를 num 크기만큼 할당 후 선언함
▶ for(int i=0; i<num; i++){ arr[i] = scanner.nextInt() } : 배열에 들어갈 값을 사용자로부터 입력 받음
for(int i=0; i<num-1; i++){
for(int j=0; j<num-1-i; j++){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
▶ 0부터 시작하기 때문에 i 반복문은 num-1까지 반복함
▶ 가장 마지막 값부터 순서대로 큰 값으로 결정되었기 때문에 j 반복문은 num-1-i까지 반복함
▶ 배열의 현재 값 기준으로 그 다음 값보다 클 경우 두 값의 위치를 변경함
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[Java] 1427 소트인사이드 (0) | 2023.04.23 |
---|---|
[Java] 1377 버블 소트 (2) | 2023.04.22 |
[Java] 11286 절댓값 힙 (0) | 2023.04.20 |
[Java] 2164 카드2 (0) | 2023.04.19 |
[Java] 17298 오큰수 (0) | 2023.04.18 |