SOJ ONLINE JUDGE

문제 3

수 정렬하기 1

내 상태
미제출
난이도
3번 문제 난이도 보기
Bronze III
출제자
rlatjwls7882
시간 제한
1000 ms
메모리 제한
1024 MB
3번 문제 태그 보기
정렬

길이가 $N$인 정수 수열 $A_1, A_2, \cdots, A_N$이 주어진다.

수열 $A$를 오름차순으로 정렬하여 출력하라.

입력

첫 번째 줄에 정수 $N$이 주어진다. $(1 \le N \le 1\,000)$

두 번째 줄에 $N$개의 정수 $A_1, A_2, \cdots, A_N$이 공백으로 구분되어 주어진다. $(1 \le A_i \le 1\,000)$

출력

첫 번째 줄에 수열 $A$를 오름차순으로 정렬하여 공백으로 구분해 출력한다.

예제 입력 1

5
3 4 2 1 5

예제 출력 1

1 2 3 4 5 

공식 해설 풀이 스포일러 보기 접기

오름차순으로 정렬하면 작은 수부터 차례로 출력할 수 있다. 같은 수가 여러 번 주어져도 각각 수열의 원소이므로 중복을 제거하지 않는다.

$N\le1\,000$이므로 $O(N\log(N+1))$ 비교 정렬로 충분하다. 배열을 저장하는 공간복잡도는 $O(N)$이다.

구현 · 언어별 풀이

C++ 구현

C++에서는 vector<int>에 입력을 저장하고 sort(a.begin(), a.end())로 정렬한다. 정렬한 배열을 앞에서부터 공백으로 구분하여 출력한다.

C 구현

int 배열에 값을 저장한 뒤 qsort로 오름차순 정렬한다. 비교 함수는 (a > b) - (a < b)를 반환하도록 작성할 수 있다.

Python 구현

정수 리스트의 sort()를 호출하고 정렬한 값을 순서대로 출력한다.

Java 구현

int[]를 채우고 Arrays.sort(a)를 호출한다.

Rust 구현

Vec<i32>에 저장하고 sort_unstable()을 호출한다. 동일한 값의 원래 순서는 중요하지 않으므로 안정 정렬은 필요 없다. 모든 원소를 출력한다.

JavaScript 구현

입력의 첫 수 $N$을 제외한 수열에 a.sort((x, y) => x - y)를 적용한다. 기본 sort()는 문자열 순서로 비교하므로 숫자 비교 함수를 전달한다. 정렬한 수열은 a.join(' ')으로 출력한다.

제출

편집기에서 나가려면 Esc를 누른 뒤 Tab 또는 Shift와 Tab을 누르세요.