Programming/백준 (c++)

[백준] #10867: 중복 빼고 정렬하기

마이구미포포 2022. 9. 11. 23:13

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

 

10867번: 중복 빼고 정렬하기

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

www.acmicpc.net

 

문제

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

 

코드

#include <iostream>
#include <set>

using namespace std;

int main() {
	int n, input;
	set<int> s;

	//입력
	cin >> n;
	while (n--) {
		cin >> input;
		s.insert(input); //셋에 삽입
	}

	//출력
	//set<int>::iterator iter; >auto를 쓰면 굳이 이렇게 하지 않아도됨
    
	//auto:초기화 값에 따라 데이터 타입을 자동으로 정해줌
	for ( auto iter = s.begin(); iter != s.end(); iter++) {
		cout << *iter << ' ';
	}
}