๐ฉ๐ป๐พ
[๋ฐฑ์ค/Python] 1920๋ฒ ์ํ๋ ์ ์ ์ฐพ๊ธฐ ๋ณธ๋ฌธ
[๋ฐฑ์ค/Python] 1920๋ฒ ์ํ๋ ์ ์ ์ฐพ๊ธฐ
์ฅฌ์ค์ด 2023. 3. 7. 17:101๏ธโฃ๋ฌธ์ ์ค๋ช
N๊ฐ์ ์ ์ A[1], A[2], …, A[N]์ด ์ฃผ์ด์ ธ ์์ ๋, ์ด ์์ X๋ผ๋ ์ ์๊ฐ ์กด์ฌํ๋์ง ์์๋ด๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
2๏ธโฃ์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ฐ์ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ N๊ฐ์ ์ ์ A[1], A[2], …, A[N]์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ M๊ฐ์ ์๋ค์ด ์ฃผ์ด์ง๋๋ฐ, ์ด ์๋ค์ด A์์ ์กด์ฌํ๋์ง ์์๋ด๋ฉด ๋๋ค. ๋ชจ๋ ์ ์์ ๋ฒ์๋ -231 ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ 231๋ณด๋ค ์๋ค.
3๏ธโฃ์ถ๋ ฅ
M๊ฐ์ ์ค์ ๋ต์ ์ถ๋ ฅํ๋ค. ์กด์ฌํ๋ฉด 1์, ์กด์ฌํ์ง ์์ผ๋ฉด 0์ ์ถ๋ ฅํ๋ค.
๐ฉ๐ป๐ป์์ฑํ ์ฝ๋
import sys
input = sys.stdin.readline
n = int(input()) # ์
๋ ฅ ๋ฐ์ ๊ฐ์
A = list(map(int, input().split()))
m = int(input()) # ํ๊ฒ ๊ฐ์
targetList = list(map(int, input().split()))
A.sort()
for i in range(m):
find = False
target = targetList[i]
s = 0
e = len(A) - 1
while s <= e:
midI = (s + e) // 2
midV = A[midI]
if midV > target:
e = midI - 1
elif midV < target:
s = midI + 1
else:
find = True
break
if find:
print(1)
else:
print(0)
๐ก์ฝ๋ ์ค๋ช
์ด ๋ฌธ์ ๋ ์ด์งํ์์ผ๋ก ํด๊ฒฐํ๊ธฐ ์ํด์ ๋ฆฌ์คํธ A๋ฅผ ์ ๋ ฌํด์คฌ๋ค.
for๋ฌธ์ ํตํด ์ด์งํ์์ ์งํํ๊ณ ํ๊ฒ ๋ฐ์ดํฐ๊ฐ ๋ฆฌ์คํธ A์ ์์ ์, boolํ์ธ find๋ฅผ True๋ก ์ ์ฅํ๋ค.
๋ณ์ find๋ฅผ ํตํด ํ๊ฒ ๋ฐ์ดํฐ๊ฐ ์๋์ง ํ๋ณํ๊ณ ๊ทธ์ ๋ฐ๋ผ 1 ๋๋ 0์ ์ถ๋ ฅํด์ค๋ค.
'์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/Python] 1715๋ฒ ์นด๋ ์ ๋ ฌํ๊ธฐ (0) | 2023.03.09 |
---|---|
[๋ฐฑ์ค/Python] 11047๋ฒ ๋์ 0 (0) | 2023.03.09 |
[๋ฐฑ์ค/Python] 2178๋ฒ ๋ฏธ๋ก ํ์ (0) | 2023.03.07 |
[๋ฐฑ์ค/Python] 1260๋ฒ DFS์ BFS (0) | 2023.03.02 |
[๋ฐฑ์ค/Python] 13023๋ฒ ABCDE (0) | 2023.03.02 |