[λ°±μ€/C++] 1764λ²: λ£λ³΄μ‘
λ¬Έμ
κΉμ§μμ΄ λ£λ λͺ»ν μ¬λμ λͺ λ¨κ³Ό, 보λ λͺ»ν μ¬λμ λͺ λ¨μ΄ μ£Όμ΄μ§ λ, λ£λ 보λ λͺ»ν μ¬λμ λͺ λ¨μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ λ£λ λͺ»ν μ¬λμ μ N, 보λ λͺ»ν μ¬λμ μ Mμ΄ μ£Όμ΄μ§λ€. μ΄μ΄μ λμ§Έ μ€λΆν° Nκ°μ μ€μ κ±Έμ³ λ£λ λͺ»ν μ¬λμ μ΄λ¦κ³Ό, N+2μ§Έ μ€λΆν° 보λ λͺ»ν μ¬λμ μ΄λ¦μ΄ μμλλ‘ μ£Όμ΄μ§λ€. μ΄λ¦μ λμ΄μ°κΈ° μμ΄ μνλ²³ μλ¬Έμλ‘λ§ μ΄λ£¨μ΄μ§λ©°, κ·Έ κΈΈμ΄λ 20 μ΄νμ΄λ€. N, Mμ 500,000 μ΄νμ μμ°μμ΄λ€.
λ£λ λͺ»ν μ¬λμ λͺ λ¨μλ μ€λ³΅λλ μ΄λ¦μ΄ μμΌλ©°, 보λ λͺ»ν μ¬λμ λͺ λ¨λ λ§μ°¬κ°μ§μ΄λ€.
μΆλ ₯
λ£λ³΄μ‘μ μμ κ·Έ λͺ λ¨μ μ¬μ μμΌλ‘ μΆλ ₯νλ€.
νμ΄
μ€λ³΅μ΄ μλ€ + κ²μ νμ -> setμ μ¬μ©νλ©΄ λΉ λ₯΄κ² ν μ μλ λ¬Έμ
1. λ£λ λͺ»ν μ¬λμ setμ μ μ₯νλ€.
2. 보λ λͺ»ν μ¬λμ μ λ ₯μ λ°μΌλ©΄μ ν΄λΉ μ¬λμ΄ 'λ£λ λͺ»ν μ¬λ' setμ μλμ§ νμΈνλ€.
2-1. 'λ£λ λͺ»ν μ¬λ' setμ μλ κ²½μ° κ·Έ μ¬λμ 'λ£λ 보λ λͺ»ν μ¬λ' setμ μΆκ°νλ€.
3. μΆλ ₯νλ€.
#include <iostream>
#include <set>
using namespace std;
int main() {
int n, m;
string input;
set<string> s, answer;
// μ
λ ₯
cin >> n >> m;
while (n--) {
cin >> input;
s.insert(input);
}
for (int i = 0; i < m; i++) {
cin >> input;
if (s.find(input) != s.end())
answer.insert(input);
}
// μΆλ ₯
cout << answer.size() << "\n";
for (auto pos = answer.begin(); pos != answer.end(); pos++)
cout << *pos << "\n";
}