๋ฌธ์
๊น์ง์์ด ๋ฃ๋ ๋ชปํ ์ฌ๋์ ๋ช ๋จ๊ณผ, ๋ณด๋ ๋ชปํ ์ฌ๋์ ๋ช ๋จ์ด ์ฃผ์ด์ง ๋, ๋ฃ๋ ๋ณด๋ ๋ชปํ ์ฌ๋์ ๋ช ๋จ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋ฃ๋ ๋ชปํ ์ฌ๋์ ์ N, ๋ณด๋ ๋ชปํ ์ฌ๋์ ์ M์ด ์ฃผ์ด์ง๋ค. ์ด์ด์ ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑธ์ณ ๋ฃ๋ ๋ชปํ ์ฌ๋์ ์ด๋ฆ๊ณผ, N+2์งธ ์ค๋ถํฐ ๋ณด๋ ๋ชปํ ์ฌ๋์ ์ด๋ฆ์ด ์์๋๋ก ์ฃผ์ด์ง๋ค. ์ด๋ฆ์ ๋์ด์ฐ๊ธฐ ์์ด ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง๋ฉฐ, ๊ทธ ๊ธธ์ด๋ 20 ์ดํ์ด๋ค. N, M์ 500,000 ์ดํ์ ์์ฐ์์ด๋ค.
๋ฃ๋ ๋ชปํ ์ฌ๋์ ๋ช ๋จ์๋ ์ค๋ณต๋๋ ์ด๋ฆ์ด ์์ผ๋ฉฐ, ๋ณด๋ ๋ชปํ ์ฌ๋์ ๋ช ๋จ๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
์ถ๋ ฅ
๋ฃ๋ณด์ก์ ์์ ๊ทธ ๋ช ๋จ์ ์ฌ์ ์์ผ๋ก ์ถ๋ ฅํ๋ค.
ํ์ด
๋ฌธ์ ์ ๋ชฉ ๋ณด๊ณ ์ด์ด์์ด์ 10๋ถ๊ฐ ์ ์งํ๋ ๋ฌธ์ ใ ใ ใ ใ
set์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์ด๋ค!
#include <iostream>
#include <set>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int n, m, ans=0;
string input;
cin >> n >> m;
// 01. ๋ฃ๋ ๋ชปํ ์ฌ๋์ set์ ๋ฑ๋ก
set<string> name; // map๋ณด๋ค ๋นจ๋ผ์ง!(20ms)
while (n--){
cin >> input;
name.insert(input);
}
// 02. ๋ณด๋ ๋ชปํ ์ฌ๋๊ณผ ๋ฃ๋ ๋ชปํ ์ฌ๋ ๋น๊ต
// vector์ ๋ฃ๋ณด์ก ์ด๋ฆ ์ ์ฅ
vector<string> dupName;
while (m--){
cin >> input;
if (name.count(input)){
ans++;
dupName.push_back(input);
}
}
// 03. ๋ฃ๋ณด์ก ์ด๋ฆ ์ฌ์ ์์ผ๋ก ์ ๋ ฌ
sort(dupName.begin(), dupName.end());
// ์ถ๋ ฅ
cout << ans << "\n";
for (int i=0; i<dupName.size();i++){
cout << dupName[i] << "\n";
}
}
'โจ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 4358๋ฒ : ์ํํ (0) | 2021.09.12 |
---|---|
[๋ฐฑ์ค/C++] 2015๋ฒ : ์๋ค์ ํฉ 4 (0) | 2021.09.12 |
[๋ฐฑ์ค/C++] 10757๋ฒ : ํฐ ์ (0) | 2021.09.12 |
[๋ฐฑ์ค/C++] 19636๋ฒ : ์์ ์๋ฎฌ๋ ์ด์ (0) | 2021.09.12 |
[๋ฐฑ์ค/C++] 10876๋ฒ : ์ค๋ณต ๋นผ๊ณ ์ ๋ ฌํ๊ธฐ (0) | 2021.09.08 |
๋๊ธ