[BOJ][C++] 백준 10867번 중복 빼고 정렬하기
Updated:
10867번 중복 빼고 정렬하기
1. 문제 정보
백준 온라인 저지 [10867번 중복 빼고 정렬하기] 문제의 링크입니다.
문제
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
시간 / 메모리 제한
1초 / 256MB
2. 생각
-
중복이 있는 수열을 중복을 제거하고 오름차순으로 정렬하여 출력하는 문제입니다.
-
중복을 제거하고, 오름차순으로 정렬의 두 가지 키워드를 모두 만족하는 STL이 바로 set 입니다.
-
set은 값을 삽입할 때 중복을 체크합니다. 여러번 같은 값을 삽입해도 한 번만 삽입이 됩니다.
-
중복 체크(검색)를 빠르게 하기 위해 set은 이진트리 구조로 정렬되어 저장됩니다. 별도로 sort() 함수를 쓸 필요가 없습니다.
3. 소스코드 (C++)