λ¬Έμ
μ°μ’ μ΄λ μμ²λ κΈ°μ΅λ ₯μ κ°μ§κ³ μλ€. κ·Έλμ ν루 λμ λ³Έ μ μλ€μ λͺ¨λ κΈ°μ΅ ν μ μλ€. νμ§λ§ μ΄λ₯Ό λ―Ώμ μ μλ λκ·λ κ·Έμ κΈ°μ΅λ ₯μ μνν΄ λ³΄κΈ°λ‘ νλ€. λκ·λ μ°μ’ μ λ°λΌ λ€λλ©°, μ°μ’ μ΄ ν루 λμ λ³Έ μ μλ€μ λͺ¨λ ‘μ첩1’μ μ μ΄ λμλ€. κ·Έκ²μ λ°νμΌλ‘ κ·Έκ° μ§μ§ μκΈ°μμΈμ§ μμ보기 μν΄, λκ·λ μ°μ’ μκ² Mκ°μ μ§λ¬Έμ λμ‘λ€. μ§λ¬Έμ λ΄μ©μ “XλΌλ μ μλ₯Ό μ€λ λ³Έ μ μ΄ μλκ°?” μ΄λ€. μ°μ’ μ λ§νμμ΄ λͺ¨λ λλ΅μ νκ³ , λκ·λ μ°μ’ μ΄ λ΄€λ€κ³ μ£Όμ₯νλ μ λ€μ ‘μ첩2’μ μ μ΄ λμλ€. μ§μ λμμ¨ λκ·λ λ΅μ΄ λ§λμ§ νμΈνλ € νμ§λ§, μ°μ’ μ λ°λΌλ€λλλΌ λ무 νλ€μ΄μ μ¬λ¬λΆμκ² λμμ μμ²νλ€. λκ·λ₯Ό λμμ£ΌκΈ° μν΄ ‘μ첩2’μ μ νμλ μμλλ‘, κ°κ°μ μμ λνμ¬, ‘μ첩1’μ μμΌλ©΄ 1μ, μμΌλ©΄ 0μ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±ν΄λ³΄μ.
μ λ ₯
첫째 μ€μ ν μ€νΈμΌμ΄μ€μ κ°μ Tκ° λ€μ΄μ¨λ€. λ€μ μ€μλ ‘μ첩 1’μ μ μ΄ λμ μ μμ κ°μ N(1 ≤ N ≤ 1,000,000)μ΄ μ λ ₯μΌλ‘ λ€μ΄μ¨λ€. κ·Έ λ€μ μ€μ ‘μ첩 1’μ μ ν μλ μ μλ€μ΄ Nκ° λ€μ΄μ¨λ€. κ·Έ λ€μ μ€μλ ‘μ첩 2’μ μ μ΄ λμ μ μμ κ°μ M(1 ≤ M ≤ 1,000,000) μ΄ μ£Όμ΄μ§κ³ , λ€μ μ€μ ‘μ첩 2’μ μ μ΄ λμ μ μλ€μ΄ μ λ ₯μΌλ‘ Mκ° λ€μ΄μ¨λ€. λͺ¨λ μ μλ€μ λ²μλ int λ‘ νλ€.
μΆλ ₯
‘μ첩2’μ μ νμλ Mκ°μ μ«μ μμλλ‘, ‘μ첩1’μ μμΌλ©΄ 1μ, μμΌλ©΄ 0μ μΆλ ₯νλ€.
νμ΄
μ λ ¬μ ν νμμμ΄ μ½μ κ³Ό κ²μλ§ μΌμ΄λλ€. μ λ ₯μ μκ° μ΅λ 1,000,000μ΄λ―λ‘ O(logN)μ setμ΄ μλ O(1)μΈ unordered_setμ μ¬μ©νλ€.
1. μκ°μ΄ 짧기 λλ¬Έμ μμ μ½λ 3μ€μ λ£μ΄μ£Όμ΄μΌ νλ€.
2. setμ κ²½μ° μλ λ°©μ μ€ νλλ₯Ό μ ννλ©΄ λ λ―νλ€. μ μΌ μμ μ μΈνκ³ μ΄κΈ°νλ₯Ό νμ§ μμλλ μκΎΈ μ€ν¨κ° λ΄λ€^^
(1) whileλ¬Έ μμμ μ μΈνμ¬ μλ μ΄κΈ°ν
(2) μ μΌ μμ μ μΈνκ³ λλ§λ€ μ΄κΈ°ν
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
// μκ° μ΄κ³Ό λ°©μ§
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int t, n, m, num;
// μ
λ ₯
cin >> t;
while (t--) {
unordered_set<int> note;
cin >> n;
while (n--) {
cin >> num;
note.insert(num);
}
cin >> m;
while (m--) {
cin >> num;
if (note.find(num) == note.end())
cout << "0\n";
else
cout << "1\n";
}
}
}
'β¨ Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€/C++] 19583λ²: μΈμ΄λ²κ°κ°μ΄ν (0) | 2022.07.17 |
---|---|
[λ°±μ€/C++] 11478λ²: μλ‘ λ€λ₯Έ λΆλΆ λ¬Έμμ΄μ κ°μ (0) | 2022.07.17 |
[λ°±μ€/C++] 9375λ²: ν¨μ μ μ ν΄λΉ (0) | 2022.07.10 |
[λ°±μ€/C++] 1764λ²: λ£λ³΄μ‘ (0) | 2022.07.10 |
[λ°±μ€/C++] 10757λ²: ν° μ A+B (0) | 2022.07.10 |
λκΈ