본문 바로가기
코딩 문제/백준 [ Java ]

[ 백준 2750 / Java ] 수 정렬하기

by CODESIGN 2022. 1. 21.

https://www.acmicpc.net/problem/2750

 

2750번: 수 정렬하기

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

www.acmicpc.net

 

문제


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

 

 

입력


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

 

 

출력


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

 

 

예제 입력 1 복사


5
5
2
3
4
1

 

 

예제 출력 1 복사


1
2
3
4
5

 

 

문제 풀이


  • 첫 줄에 총 입력 할 숫자의 개수를 입력한다
  • for loop을 사용하여 숫자를 받는다.
  • temp를 사용하여 숫자 순서를 오름차순으로 바꿔준다.
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.io.*;
 
public class Main {
 
    public static void main(String[] args) throws IOException {
 
        //수의 개수
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int count = Integer.parseInt(br.readLine());
        // 입력 받는 수의 배열
        int [] arr = new int [count];
        // 임시 저장 변수
        int temp;
 
        for (int i = 0; i < count; i++) {
            arr[i] = Integer.parseInt(br.readLine());
        }
 
        for (int i = 0; i < count; i++) {
            for (int j = i+1; j < count; j++) {
                if (arr[i] > arr[j]) {
                    temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
 
        for (int i = 0; i < count; i++) {
            System.out.println(arr[i]);
        }
    }
}
 
cs

 

 

Array  클래스 사용한 풀이


  • Array 클래스를 사용하면 알고리즘이 더 효율적으로 돌아간다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.io.*;
import java.util.Arrays;
 
public class Main {
 
    public static void main(String[] args) throws IOException {
 
        //수의 개수
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int count = Integer.parseInt(br.readLine());
        // 입력 받는 수의 배열
        int [] arr = new int [count];
        // 임시 저장 변수
        int temp;
 
        for (int i = 0; i < count; i++) {
            arr[i] = Integer.parseInt(br.readLine());
        }
 
        Arrays.sort(arr);
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < arr.length; i++) {
            sb.append(arr[i]);
            if(i != arr.length -1) {
                sb.append("\n");
            }
        }
        System.out.println(sb.toString());
    }
}
 
cs

 

 

댓글