본문 바로가기
나만 볼 것/코딩테스트 관련 알고리즘?

C++ 정렬

by xortl98 2022. 2. 6.
728x90

정수

#include<iostream>
#include<algorithm>

using namespace std;


int main()
{
	int a[5] = { 53,88,31,45,7 };
	sort(a, a + 5);
	for (int i = 0; i <sizeof(a)/sizeof(int); i++)
	{
		cout << a[i] << endl;
	}
}
// 순서대로 7 31 45 53 88이 출력된다.

정수 내림차순

#include <iostream>
#include<algorithm>

using namespace std;

int main()
{
	int A[5] = { 15,5,7,6,2 };

	sort(A, A + 5, greater<int>());

	//for(int i=0; i<5; i++)
	for (int i = 0; i < sizeof(A)/sizeof(int); i++)
	{
		cout << A[i] << " ";
	}
}
//정답으로 15 7 6 5 2 가 출력된다.

문자열 

#include<iostream>
#include<algorithm>

using namespace std;

string input;

int main()
{
	cin >> input;	//acb321
	sort(input.begin(), input.end());
	cout << input;	//123abc 숫자먼저 정렬된다.
}

2차원 백터 정렬

#include<iostream>
#include<algorithm>
#include<vector>

using namespace std;

int n;	//정렬 할 개수 
int a, b;	//정렬에 필요한 정수 변수 
vector<pair<int, int>>v;

int main()
{
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> a >> b;
		v.push_back(make_pair(a, b));
	}
	cout << "정렬 후" << endl;
	sort(v.begin(), v.end());
	for (int i = 0; i < n; i++)
	{
		cout << v[i].first << " " << v[i].second << endl;
	}
}

2차원 배열 정렬 후