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

 

10814번: 나이순 정렬

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을

www.acmicpc.net

  • stable_sort(): 동일한 값이 있을 경우 입력 순서를 보존하여 정렬
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

bool Comp(pair<int, string> p1, pair<int, string> p2)
{
    return p1.first < p2.first;
}

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

    int n;
    int age;
    string name;
    cin >> n;

    vector<pair<int, string>> user;

    for (int i = 0; i < n; i++)
    {
        cin >> age >> name;
        user.push_back({ age, name });
    }

    stable_sort(user.begin(), user.end(), Comp);

    for (int i = 0; i < n; i++)
    {
        cout << user[i].first << ' ' << user[i].second << '\n';
    }
}

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

 

11931번: 수 정렬하기 4

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

www.acmicpc.net

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

using namespace std;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);

	int n;
	int num;
	vector<int> v;

	cin >> n;

	for (int i = 0; i < n; i++)
	{
		cin >> num;
		v.push_back(num);
	}

	sort(v.begin(), v.end(), greater<int>());

	for (int i = 0; i < v.size(); i++)
	{
		cout << v[i] << '\n';
	}

}

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

 

2822번: 점수 계산

8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문

www.acmicpc.net

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

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    int score;
    int sum = 0;
    vector<pair<int, int>> v;
    vector<int> idx;

    for (int i = 0; i < 8; i++)
    {
        cin >> score;
        v.push_back({ score, i + 1 });
    }

    sort(v.begin(), v.end(), greater<pair<int,int>>());

    for (int i = 0; i < 5; i++)
    {
        sum += v[i].first;
        idx.push_back(v[i].second);
    }

    cout << sum << '\n';

    sort(idx.begin(), idx.end());

    for (int i = 0; i < 5; i++)
    {
        cout << idx[i] << ' ';
    }
}

+ Recent posts