๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€

[๋ฐฑ์ค€] 1920๋ฒˆ ์ˆ˜ ์ฐพ๊ธฐ (Python)

mallin 2025. 2. 11. 17:21

https://www.acmicpc.net/problem/1920

๐Ÿ“Œ ๋ฌธ์ œ

N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], …, A[N]์ด ์ฃผ์–ด์ ธ ์žˆ์„ ๋•Œ, ์ด ์•ˆ์— X๋ผ๋Š” ์ •์ˆ˜๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

๐Ÿ“Œ ์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], …, A[N]์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M(1 ≤ M ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M๊ฐœ์˜ ์ˆ˜๋“ค์ด ์ฃผ์–ด์ง€๋Š”๋ฐ, ์ด ์ˆ˜๋“ค์ด A์•ˆ์— ์กด์žฌํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๋ฉด ๋œ๋‹ค. ๋ชจ๋“  ์ •์ˆ˜์˜ ๋ฒ”์œ„๋Š” -231 ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ  231๋ณด๋‹ค ์ž‘๋‹ค.

 

 

๐Ÿ“Œ ์ถœ๋ ฅ

M๊ฐœ์˜ ์ค„์— ๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค. ์กด์žฌํ•˜๋ฉด 1์„, ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

 


๐Ÿ“Œ ํ’€์ด ๋ฐฉ์‹ 

์ด ๋ฌธ์ œ์˜ ๊ฐ€์žฅ ํ‚ค ํฌ์ธํŠธ๋Š” ์ •์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ ํฐ๋ฐ ์‹œ๊ฐ„ ์ œํ•œ์ด 1์ดˆ ๋ผ๋Š” ๊ฒƒ์ธ๋ฐ์š” !!

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์ธ ๋ฆฌ์ŠคํŠธ ์กฐํšŒ ๋ฐฉ์‹(O(N))์œผ๋กœ ํ’€๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค

(์ €๋„ ์ฒ˜์Œ์— ๋ฆฌ์ŠคํŠธ์—์„œ in ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ๋ฐ”๋กœ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜๋”๋ผ๊ตฌ์š” ใ…Žใ…Ž)

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜์— ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•œ ์ง‘ํ•ฉ๊ณผ ๋งต ์ด ์žˆ๋Š” ๊ฑธ ํ™•์ธํ•˜๊ณ  ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด ํ‰๊ท  O(1) ์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค!!


๐Ÿ“Œ ์ฝ”๋“œ

import sys
input = sys.stdin.readline

N = int(input())
numbers = dict.fromkeys(map(int, input().split()), True)

M = int(input())
munmbers = list(map(int, input().split()))

for mumber in munmbers:
    print(int(mumber in numbers))

 

โœ… dict.fromkeys(iterable, value)๋ฅผ ํ™œ์šฉํ•˜๋ฉด ํ‚ค๋ฅผ ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ ,
โœ… in ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•ด๋„ O(1) ํ‰๊ท  ๋ณต์žก๋„๋กœ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!