✏️ 문제풀이/백준
[백준/Java] 2750번 :: 수 정렬하기
bono-hye
2024. 5. 19. 23:11
| 문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
| 입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
| 출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
| 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main
{
public static void main(String[] args) throws NumberFormatException, IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
for(int i=0; i<N; i++)
arr[i] = Integer.parseInt(br.readLine());
Arrays.sort(arr);
for(int i=0; i<N; i++)
System.out.println(arr[i]);
}
}
| 정리
이중 for문 사용해서 모든 수를 비교하는 선택정렬 방식은 메모리, 시간 면에서 효율이 좋지 않을 것 같아 Arrays.sort 메소드를 활용해서 풀었다.
추가 ) 선택정렬 방식으로 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main
{
public static void main(String[] args) throws NumberFormatException, IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
for(int i=0; i<N; i++)
arr[i] = Integer.parseInt(br.readLine());
for(int i=0; i<N; i++)
{
for(int j=i+1; j<N; j++)
{
if(arr[i] > arr[j])
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for(int i=0; i<N; i++)
System.out.println(arr[i]);
}
}