728x90
반응형
[ 성능 요약 ]
메모리: 22240 KB, 시간: 352 ms
[ 분류 ]
정렬(sorting), 구현(implementation)
[ 문제 설명 ]
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
[ 입력 ]
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
[ 출력 ]
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
import java.util.Scanner;
public class 수정렬하기 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); // (정렬할 수의 갯수) N 입력받기
int[] numArr = new int[N]; // (정렬할 배열 선언) numArr 선언하기
// 정렬할 배열 값 저장하기
for(int i = 0; i < N; i++) {
numArr[i] = sc.nextInt();
}
// 현재 numArr 배열의 값보다 1칸 오른쪽 배열의 값이 더 작으면 두 수 바꾸기
for(int i = 0; i < N - 1; i++) {
for(int j = 0; j < N - 1 - i; j++) {
// 상대적으로 왼쪽에 위치한 numArr[j]값이 오른쪽에 위치한 numArr[j+1]보다 값이 크면
// 오른쪽으로 그 값을 이동시킨다. 즉, 더 큰 숫자가 오른쪽에 위치하게 만든다.
if(numArr[j] > numArr[j+1]) {
int temp = numArr[j];
numArr[j] = numArr[j+1];
numArr[j+1] = temp;
}
}
}
for(int i = 0; i < N; i++) {
System.out.println(numArr[i]);
}
}
}
[ 슈도코드 작성 ]
( 정렬할 수의 갯수 ) N 선언하기
(정렬할 배열 선언 ) numArr 생성하기
for ( N번 반복 ) {
numArr 배열 값 저장하기
}
for ( i : 0 ~ N-1 ) {
for ( j : 0 ~ N-1-i ) {
왼쪽에 위치한 numArr 배열의 값보다 1칸 오른쪽 배열의 numArr 배열 값이 더 작으면 두 수 바꾸기
}
}
numArr 배열 출력하기
728x90
반응형
'Algorithm > Beakjoon' 카테고리의 다른 글
[Silver I] 하노이 탑 이동 순서_P11729 (0) | 2023.01.29 |
---|---|
[Silver I] 절댓값 힙_P11286 (0) | 2023.01.25 |
[Silver IV] 카드2_P2164 (1) | 2023.01.22 |
[Gold IV] 좋다_P1253 (0) | 2023.01.17 |
[Gold III] 나머지 합_P10986 (0) | 2023.01.17 |