[백준] 10867번. 중복 빼고 정렬하기

연성·2020년 10월 26일
0

코딩테스트

목록 보기
114/261

[백준] 10867번. 중복 빼고 정렬하기

1. 문제

N개의 정수가 주어진다. 이때, N개의 정수를 오름차순으로 정렬하는 프로그램을 작성하시오. 같은 정수는 한 번만 출력한다.

2. 입력

첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다.

3. 출력

첫째 줄에 수를 오름차순으로 정렬한 결과를 출력한다. 이때, 같은 수는 한 번만 출력한다.

4. 풀이

  • set을 사용하였다.
  • 중복을 제거할 때 주로 사용하는 게 setboolean 배열인데 음수가 나올 수 있기 때문에 좀 더 까다로울 것 같아서 알아서 set을 사용하였다.
  • set은 정렬도 알아서 해주기 때문에 set에 모든 정수를 넣었다가 다시 출력하는 것만으로 중복 빼고 정렬이 가능하다.

5. 코드

#include <iostream>
#include <algorithm>
#include <set>

using namespace std;

int main() {
	cin.tie(NULL);
	ios_base::sync_with_stdio(false);

	set<int> s;
	
	int length;
	cin >> length;

	for (int i = 0; i < length; i++){
		int number;
		cin >> number;
		s.insert(number);
	}

	for (auto it = s.begin(); it !=s.end(); it++){
		cout << *it << " ";
	}

}

0개의 댓글