https://www.acmicpc.net/problem/14911
๋ฌธ์
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง ์ฌ๋ฌ ๊ฐ์ ์ ์ ์ค์์ ํฉ์ด ๋์งธ ์ค์ ์ฃผ์ด์ง ์์ ๊ฐ์ ์๋ก ๋ค๋ฅธ ์์น์ ์๋ ๋ ์์ ์์ ๋ชจ๋ ์ถ๋ ฅํ๊ณ ๋งจ ์๋์ ์ด ์์ ๊ฐ์๋ฅผ ์ด์ด์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋น ์นธ์ผ๋ก ๊ตฌ๋ถ๋ ์ ์๊ฐ 2๊ฐ ์ด์, 10๊ฐ ์ดํ ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ์ ์๊ฐ ํ๋ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
์ถ๋ ฅ
์ฐพ์ ์์ ์์ ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๊ณ ๋งจ ์๋ซ ์ค์ ๊ทธ๋ฌํ ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
๊ตฌ์ฑ์ ๊ฐ์ง๋ง, ์์๊ฐ ๋ค๋ฅธ ์ (a, b)์ (b, a)๋ ์ ํ๋๋ก ํ๋ฉฐ, a ≤ b์ธ ์์ ์ถ๋ ฅํ๋ค.
์์ด ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ์๋ ์ฌ์ ์์ผ๋ก ์ถ๋ ฅํ๋ค. (a, b)๊ฐ (c, d)๋ณด๋ค ์ฌ์ ์์ผ๋ก ์์๋ ๊ธฐ์ค์ a < c์ด๊ฑฐ๋, a == c ์ด๋ฉด์, b < d ์ธ ๊ฒ์ด๋ค.
ํ์ด
์ ๋ ฅ ๊ฐฏ์๊ฐ ์ฃผ์ด์ง์ง ์์์ ์ธํฐ๋ท์ ์ฐธ๊ณ ํ๋ค.
์ ๋ ฅ๋ฐ์ ์๋ค์ map์ผ๋ก ์ ์ฅํ์ฌ ๊ฐ ๊ฐ์ด ๋ช๊ฐ์ฉ ์๋์ง๋ฅผ ๊ฐ์ ์์๋๋ก ์ ์ฅํ๋ค.
์ดํ ์ด ๋งต์ ์์์๋ถํฐ ๋๋ฉด์ ์์์์ ์ด๋ฃจ๋ ์ซ์๊ฐ ์๋์ง ์ฒดํฌํ๊ณ ๊ฐฏ์๋ฅผ ์ค์ฌ๋๊ฐ๋ ์์ผ๋ก ์นด์ดํธ ๋ฐ ์ถ๋ ฅ
// Authored by : seondal
// Co-authored by : -
// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
map<int, int> cnt; // cnt[i] = i์ ๊ฐฏ์
int n;
while(cin >> n)
cnt[n]++;
int target = n;
int ans = 0;
for(auto i: cnt) {
int need = target - i.first;
cnt[i.first]--;
if(cnt[need] > 0) {
cnt[need]--;
cout << i.first << " " << need << "\n";
ans++;
}
}
cout << ans;
return 0;
}
/*
*/
'๐๏ธ ICPC Sinchon > Linear Data Structure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 14425๋ฒ: ๋ฌธ์์ด ์งํฉ (0) | 2023.05.23 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 20301๋ฒ: ๋ฐ์ ์์ธํธ์ค (0) | 2023.04.08 |
[BOJ S3][C++] ๋ฐฑ์ค 2910๋ฒ: ๋น๋ ์ ๋ ฌ (0) | 2022.12.28 |
[BOJ S1][C++] ๋ฐฑ์ค 4889๋ฒ : ์์ ์ ์ธ ๋ฌธ์์ด (0) | 2022.09.14 |
[BOJ S3][C++] ๋ฐฑ์ค 18115๋ฒ : ์นด๋ ๋๊ธฐ (0) | 2022.09.12 |