# 자료ꡬ쑰

2776. μ•”κΈ°μ™•

μ—°μ’…μ΄λŠ” μ—„μ²­λ‚œ κΈ°μ–΅λ ₯을 κ°€μ§€κ³  μžˆλ‹€. κ·Έλž˜μ„œ ν•˜λ£¨ λ™μ•ˆ λ³Έ μ •μˆ˜λ“€μ„ λͺ¨λ‘ κΈ°μ–΅ ν•  수 μžˆλ‹€. ν•˜μ§€λ§Œ 이λ₯Ό 믿을 수 μ—†λŠ” λ™κ·œλŠ” 그의 κΈ°μ–΅λ ₯을 μ‹œν—˜ν•΄ 보기둜 ν•œλ‹€. λ™κ·œλŠ” 연쒅을 따라 λ‹€λ‹ˆλ©°, 연쒅이 ν•˜λ£¨ λ™μ•ˆ λ³Έ μ •μˆ˜λ“€μ„ λͺ¨λ‘ ‘수첩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

1
5
4 1 5 2 3
5
1 3 7 9 5

예제 좜λ ₯1

1
1
0
0
1

 

풀이)

λ¨Όμ € testcase의 개수만큼 μž…λ ₯λ°›κ³  for문을 μ‚¬μš©ν•΄μ„œ testcase만큼 λ°˜λ³΅λ¬Έμ„ λŒλ¦°λ‹€. 

λ¨Όμ € 수첩 1에 적어놓은 μ •μˆ˜μ˜ 개수λ₯Ό n에 μž…λ ₯λ°›κ³ , κ·Έ λ‹€μŒ ν•΄λ‹Ή 개수만큼의 μ •μˆ˜λ₯Ό note1에 setν˜•νƒœλ‘œ μ €μž₯ν•œλ‹€. (set은 key값이 μ—†λŠ”  λ”•μ…”λ„ˆλ¦¬ ν˜•νƒœμ΄λ‹€.)

κ·Έ λ‹€μŒ mμ—λŠ” 수첩 2에 적어놓은 μ •μˆ˜μ˜ 개수λ₯Ό μž…λ ₯λ°›κ³ , m개만큼의 μ •μˆ˜λ₯Ό note2에 리슀트 ν˜•νƒœλ‘œ μ €μž₯ν•œλ‹€.

forλ¬Έκ³Ό if문을 μ‚¬μš©ν•΄μ„œ note2에 μ €μž₯된 μ •μˆ˜μ— λŒ€ν•΄μ„œ ν•΄λ‹Ή μ •μˆ˜κ°€ note1에도 μ €μž₯λ˜μ–΄μžˆμœΌλ©΄ 1을 좜λ ₯ν•˜κ³ , μ•„λ‹ˆλ©΄ 0을 좜λ ₯ν•˜λ„λ‘ ν–ˆλ‹€.

import sys
input = sys.stdin.readline

testcase = int(input())
for i in range (testcase):
    n = int(input())  # 수첩 1에 적어놓은 μ •μˆ˜μ˜ 개수
    note1 = set(map(int, input().split()))
    m = int(input())  # 수첩 2에 적어놓은 μ •μˆ˜μ˜ 개수
    note2 = list(map(int, input().split()))
    for num in note2:
        if num in note1:
            print(1)
        else:
            print(0)

'λ°±μ€€ > Python' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Python] λ°±μ€€ 5568번  (1) 2022.11.12
[Python] λ°±μ€€ 3986번  (0) 2022.11.12
[Python] λ°±μ€€ 10815번  (0) 2022.11.12
[Python] λ°±μ€€ 1158  (0) 2022.10.04
[Python] λ°±μ€€ 2161  (0) 2022.10.04
λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€!