알고리즘 공부/백준 문제풀이

[백준] 2750 : 수 정렬하기(JAVA)

송테이토 2022. 10. 6. 20:33

백준 2750 자바

 

수 정렬하기

문제

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

출력

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

예제 입력 1

5
5
2
3
4
1

예제 출력 1

1
2
3
4
5

시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율

1 초 128 MB 141813 80847 56063 58.230%


오름차순은 방법이 참 여러가지다.

1. Arrays.sort(arr)

package Day1003;

import java.util.Arrays;
import java.util.Scanner;

public class B2750 {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();

		int[] arr = new int[N];
		for (int i = 0; i < arr.length; i++) {
			arr[i] = sc.nextInt();
		}
		sc.close();

		Arrays.sort(arr);//오름차순 정렬
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
}

2.선택 정렬

package Day1003;

import java.util.Arrays;
import java.util.Scanner;

public class B2750_2 {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();

		int[] arr = new int[N];
		int temp; // 임시저장소

		// 입력
		for (int i = 0; i < arr.length; i++) {
			arr[i] = sc.nextInt();
		}
		sc.close();

		// 선택정렬
		for (int i = 0; i < arr.length; i++) {
			for (int j = i + 1; j < arr.length; j++) {

				if (arr[i] > arr[j]) { // i가 더 크면
					// 값 교환
					temp = arr[i]; // 임싲저장소에 보관하고
					arr[i] = arr[j]; // 순서 바꿔줌
					arr[j] = temp;
				}
			}
		}

		// 출력 for문
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
}