목차 테이블
중복 빼고 정렬하기
https://www.acmicpc.net/problem/10867
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 256 MB | 17763 | 10164 | 8622 | 57.381% |
문제
N개의 정수가 주어진다.
이때, N개의 정수를 오름차순으로 정렬하는 프로그램을 작성하시오.
같은 정수는 한 번만 출력한다.
입력
첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다.
둘째에는 숫자가 주어진다.
이 수는 절댓값이 1,000보다 작거나 같은 정수이다.
출력
첫째 줄에 수를 오름차순으로 정렬한 결과를 출력한다.
이때, 같은 수는 한 번만 출력한다.
예제 입력 1
10 1 4 2 3 1 4 2 3 1 2
예제 출력 1
1 2 3 4
예제 입력 A
12 1 4 2 3 1 0 2 3 -1 -2 1000 -1000
예제 출력 A
-1000 -2 -1 0 1 2 3 4 1000
알고리즘 분류
통과된 코드
음수가 나올 수 있다.
#include <iostream> using namespace std; int _N; bool _Arr[1001][2]; // 카운팅 정렬(Counting Sort, 계수 정렬) int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> _N; int _temp; for (int i = 0; i < _N; i++) { cin >> _temp; if (_temp < 0) _Arr[-_temp][1] = true; else _Arr[_temp][0] = true; } for (int i = 1000; i > 0; i--) if (_Arr[i][1]) cout << -i << " "; for (int i = 0; i <= 1000; i++) if (_Arr[i][0]) cout << i << " "; return 0; }