λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ“ μ•Œκ³ λ¦¬μ¦˜/Code Tree

[μ½”λ“œνŠΈλ¦¬] Hash Set μ—°μŠ΅λ¬Έμ œ

문제 : 데이터 비ꡐ

μ •μˆ˜λ‘œ 이루어진 두 μˆ˜μ—΄μ„ λΉ„κ΅ν•˜μ—¬ 같은 μ›μ†Œλ₯Ό 가지고 μžˆλŠ”μ§€ νŒλ‹¨ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•΄ λ³΄μ„Έμš”.


μž…λ ₯ ν˜•μ‹

첫 번째 μ€„μ—λŠ” μˆ˜μ—΄ 1의 μ›μ†Œμ˜ 개수 n이 μ£Όμ–΄μ§‘λ‹ˆλ‹€.

두 번째 μ€„μ—λŠ” μˆ˜μ—΄ 1의 μ›μ†Œλ“€μ΄ 곡백을 두고 μ£Όμ–΄μ§‘λ‹ˆλ‹€.

μ„Έ 번째 μ€„μ—λŠ” μˆ˜μ—΄ 2의 μ›μ†Œμ˜ 개수 m이 μ£Όμ–΄μ§‘λ‹ˆλ‹€.

λ„€ 번째 μ€„μ—λŠ” μˆ˜μ—΄ 2의 μ›μ†Œλ“€μ΄ 곡백을 두고 μ£Όμ–΄μ§‘λ‹ˆλ‹€.

  • 1 ≤ n, m ≤ 100,000
  •  ≤ μ£Όμ–΄μ§€λŠ” 숫자의 λ²”μœ„ ≤ 

좜λ ₯ ν˜•μ‹

μˆ˜μ—΄ 2의 μ›μ†Œμ˜ μˆœμ„œλŒ€λ‘œ κ·Έ μ›μ†Œκ°€ μˆ˜μ—΄ 1에 μ‘΄μž¬ν•˜λŠ” μ›μ†Œμ΄λ©΄ 1을, μˆ˜μ—΄ 1에 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μ›μ†Œμ΄λ©΄ 0을 곡백을 사이에 두고 좜λ ₯ν•©λ‹ˆλ‹€.

 

λ‚˜μ˜ 풀이

#include <iostream>
#include <unordered_set>
using namespace std;

int main() {
    unordered_set<int> s;
    int n; int m; int k;
    cin >> n;
    for(int i=0; i<n; ++i){
        cin >> k;
        s.insert(k);
    }
    cin >> m;
    for(int i=0; i<m; ++i){
        cin >> k;
        if(s.find(k) != s.end()) cout << 1 << " ";
        else cout << 0 << " ";
    }
    return 0;
}

 

문제 좜처 μ½”λ“œνŠΈλ¦¬