PS

BOJ 31908 : 커플링 매치

lickelon 2025. 1. 4. 16:09

코드

#include <bits/stdc++.h>

#define all(x) (x).begin(), (x).end()

#define INF 0x7FFFFFFF

using namespace std;

using ll = long long;
using ld = long double;
using pii = pair<int,int>;
using pll = pair<ll, ll>;

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

    int n;
    cin >> n;
    
    map<string, vector<string>> _m;
    for(int i = 0; i < n; i++) {
        string a, b;
        cin >> a >> b;
        if(b == "-") continue;
        _m[b].push_back(a);
    }

    vector<pair<string, string>> ans;
    for(auto [k, v] : _m) {
        if(v.size() != 2) continue;
        ans.emplace_back(v[0], v[1]);
    }
    cout << ans.size() << "\n";
    for(auto e : ans){
        cout << e.first << " " << e.second << "\n";
    }

    return 0;
}

풀이

맵을 이용하여 같은 특징을 가진 반지를 낀 사람끼리 모아준다.

같은 특징을 가진 반지를 낀 사람이 두 명인 경우 커플 의심군에 추가한다.

728x90

'PS' 카테고리의 다른 글

BOJ 32932 : 드론 조작  (1) 2025.01.06
BOJ 32752 : 수열이에요?  (0) 2025.01.05
BOJ 10799 : 쇠막대기  (0) 2025.01.03
BOJ 28136 : 원, 탁!  (0) 2025.01.02
BOJ 11722 : 가장 긴 감소하는 부분 수열  (0) 2025.01.02