개발일지/알고리즘

백준 10867번 : 중복 빼고 정렬하기

김진우 개발일지 2025. 1. 23. 20:56

set 을 이용한 것과 정렬 후 unique를 이용해 중복 제거를 한 버전이 있다. set은 데이터를 삽입할 때 자동으로 오름차순으로 정렬되기 때문에 별도로 정렬할 필요가 없다. 또, 아래 코드를 추가해 c++ 스타일의 입출력 속도를 올리면 16ms에서 12ms로 시간이 줄어든다.

ios_base::sync_with_stdio(false);
cin.tie(nullptr);

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

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

	int N;
	cin >> N;
	
	vector<int> nums;
	for (int i = 0; i < N; i++)
	{
		int num;
		cin >> num;
		nums.push_back(num);
	}
	sort(nums.begin(), nums.end());
	nums.erase(unique(nums.begin(), nums.end()), nums.end());

	for (int num : nums)
	{
		cout << num << "\n";
	}

	return 0;
}

 

#include <iostream>
#include <set>
#include <algorithm>
using namespace std;

int main()
{
	int N;
	scanf("%d", &N);
	
	set<int> nums;
	for (int i = 0; i < N; i++)
	{
		int num;
		scanf("%d", &num);
		nums.insert(num);
	}

	for (int num : nums)
	{
		printf("%d\n", num);
	}

	return 0;
}