티스토리 뷰

반응형

✏️ 문제 링크

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

 

10867번: 중복 빼고 정렬하기

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

www.acmicpc.net

 

✏️ 문제 설명

 

✏️ 문제 풀이

벡터에 다 입력 받은 후 sort함수로 정렬을 해주었습니다. 그리고 입력받은 크기만큼의 배열을 만듭니다. 벡터 안에서 반복문을 돌리면서 각각의 값들을 출력해주고 그 값에 해당하는 배열 인덱스값을 체크해줍니다. 다음 값부터 출력할 때 이 인덱스가 체크되어 있으면 출력하지 않습니다. 카운팅 정렬을 응용하였습니다.

 

✏️ 문제 코드

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int compare(int a, int b) {
	if (a < b)
		return 1;
	else return 0;
}
int main() {
	int n;
	cin >> n;
	vector<int>arr(n);
	for (int x = 0; x < n; x++)
		cin >> arr[x];
	sort(arr.begin(), arr.end(), compare);
	int temp = 0;
	for (int x = 0; x < n; x++) {
		if (arr[x] == temp)
			continue;
		cout << arr[x] << " ";
		temp = arr[x];
	}
}

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함