πŸ•οΈ ICPC Sinchon

[BOJ S5][C++] λ°±μ€€ 10814: λ‚˜μ΄μˆœ μ •λ ¬

선달 2023. 1. 11. 18:23
λ°˜μ‘ν˜•

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

 

10814번: λ‚˜μ΄μˆœ μ •λ ¬

온라인 저지에 κ°€μž…ν•œ μ‚¬λžŒλ“€μ˜ λ‚˜μ΄μ™€ 이름이 κ°€μž…ν•œ μˆœμ„œλŒ€λ‘œ 주어진닀. μ΄λ•Œ, νšŒμ›λ“€μ„ λ‚˜μ΄κ°€ μ¦κ°€ν•˜λŠ” 순으둜, λ‚˜μ΄κ°€ κ°™μœΌλ©΄ λ¨Όμ € κ°€μž…ν•œ μ‚¬λžŒμ΄ μ•žμ— μ˜€λŠ” μˆœμ„œλ‘œ μ •λ ¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„

www.acmicpc.net

 

문제

온라인 저지에 κ°€μž…ν•œ μ‚¬λžŒλ“€μ˜ λ‚˜μ΄μ™€ 이름이 κ°€μž…ν•œ μˆœμ„œλŒ€λ‘œ 주어진닀. μ΄λ•Œ, νšŒμ›λ“€μ„ λ‚˜μ΄κ°€ μ¦κ°€ν•˜λŠ” 순으둜, λ‚˜μ΄κ°€ κ°™μœΌλ©΄ λ¨Όμ € κ°€μž…ν•œ μ‚¬λžŒμ΄ μ•žμ— μ˜€λŠ” μˆœμ„œλ‘œ μ •λ ¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 쀄에 온라인 저지 νšŒμ›μ˜ 수 N이 주어진닀. (1 ≤ N ≤ 100,000)

λ‘˜μ§Έ 쀄뢀터 N개의 μ€„μ—λŠ” 각 νšŒμ›μ˜ λ‚˜μ΄μ™€ 이름이 곡백으둜 κ΅¬λΆ„λ˜μ–΄ 주어진닀. λ‚˜μ΄λŠ” 1보닀 ν¬κ±°λ‚˜ κ°™μœΌλ©°, 200보닀 μž‘κ±°λ‚˜ 같은 μ •μˆ˜μ΄κ³ , 이름은 μ•ŒνŒŒλ²³ λŒ€μ†Œλ¬Έμžλ‘œ 이루어져 있고, 길이가 100보닀 μž‘κ±°λ‚˜ 같은 λ¬Έμžμ—΄μ΄λ‹€. μž…λ ₯은 κ°€μž…ν•œ μˆœμ„œλ‘œ 주어진닀.

좜λ ₯

첫째 쀄뢀터 총 N개의 쀄에 걸쳐 온라인 저지 νšŒμ›μ„ λ‚˜μ΄ 순, λ‚˜μ΄κ°€ κ°™μœΌλ©΄ κ°€μž…ν•œ 순으둜 ν•œ 쀄에 ν•œ λͺ…μ”© λ‚˜μ΄μ™€ 이름을 곡백으둜 ꡬ뢄해 좜λ ₯ν•œλ‹€.

 

풀이

λ‚˜μ΄μˆœ -> μ΄λ¦„μˆœμΌκ±°λΌλŠ” 편견으둜 문제λ₯Ό ν’€μ–΄μ„œ μ΄ˆλ°˜μ— μ‚½μ§ˆν–ˆλ‹€..

κ°€μž… μˆœμ„œλ₯Ό λ°˜μ˜ν•˜λ €λ©΄ κ°€μž… μˆœμ„œλ₯Ό κ΄€λ¦¬ν•˜κ±°λ‚˜ stable_sortλ₯Ό μ΄μš©ν•˜μ—¬ λ‚˜μ΄κ°€ κ°™μ„λ•ŒλŠ” μˆœμ„œκ°€ λ³€ν•˜μ§€ μ•Šλ„λ‘ κ΅¬ν˜„ν•΄μ•Όν•˜λŠ” λ¬Έμ œλ‹€.

// Authored by : seondal
// Co-authored by : -

// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

typedef pair<int, string> ci;

bool cmp (ci a, ci b) {
    if(a.first != b.first)
        return a.first < b.first;
    return false;
}

int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    
    int n;
    cin >> n;
    vector<ci>v(n);
    for(int i=0; i<n; i++)
        cin >> v[i].first >> v[i].second;
    
    stable_sort(v.begin(), v.end(), cmp);
    
    for(int i=0; i<n; i++)
        cout << v[i].first << " " << v[i].second << "\n";
    
    return 0;
}

/*
 */
λ°˜μ‘ν˜•