n, m = map(int, input().split())
array1 = [int(input()) for _ in range(n)]
array2 = [int(input()) for _ in range(m)]
cnt = 0
for i in array2:
start = 0
end = n - 1
while start <= end:
mid = (start + end) // 2
if array1[mid] == i:
cnt += 1
break
elif array1[mid] < i:
start = mid + 1
else:
end = mid - 1
print(cnt)
์์ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ๋น์ทํ ์ฝ๋๋ก ์ฌ๋ฌ ๋ฒ ์ ์ถ์ ํ๋๋ฐ ๋ชจ๋ ํ๋ ธ๋ค๋ ๊ฒฐ๊ณผ๊ฐ ๋์๋ค.
๋ฌธ์ ๋ฅผ ๋ค์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ฝ์ด๋ณด๋ ์ฒซ ๋ฌธ์ฅ์ '์
๋ ฅ์ ์ฌ๋ฌ ๊ฐ์ ํ
์คํธ ์ผ์ด์ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.' ๋ผ๊ณ ์ฐ์ฌ ์์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง ๋ฌธ์ฅ์ '์
๋ ฅ์ ๋ง์ง๋ง ์ค์๋ 0 0์ด ์ฃผ์ด์ง๋ค.'๋ผ๊ณ ์ฐ์ฌ์์๋ค.
n๊ณผ m์ ํ ๋ฒ๋ง ์
๋ ฅ ๋ฐ๋ ๊ฒ์ด ์๋๋ผ ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ํ
์คํธ ์ผ์ด์ค๋ฅผ ์
๋ ฅ๋ฐ๊ณ 0 0์ด ์
๋ ฅ๋๋ฉด ์ข
๋ฃํ๋ ์กฐ๊ฑด์ ์์ฑํด์ผ ํ๋ค๋ ๊ฒ์ ์ ์ ์์๋ค.
while True:
n, m = map(int, input().split())
if n == 0 and m == 0:
break
array1 = [int(input()) for _ in range(n)]
array2 = [int(input()) for _ in range(m)]
cnt = 0
for i in array2:
start = 0
end = n - 1
while start <= end:
mid = (start + end) // 2
if array1[mid] == i:
cnt += 1
break
elif array1[mid] < i:
start = mid + 1
else:
end = mid - 1
print(cnt)
์ฝ๋๋ฅผ ์์ ํ๋๋ฐ ์๊ฐ ์ด๊ณผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
import sys
while True:
n, m = map(int, sys.stdin.readline().split())
if n == 0 and m == 0:
break
array1 = [int(sys.stdin.readline()) for _ in range(n)]
array2 = [int(sys.stdin.readline()) for _ in range(m)]
cnt = 0
for i in array2:
start = 0
end = n - 1
while start <= end:
mid = (start + end) // 2
if array1[mid] == i:
cnt += 1
break
elif array1[mid] < i:
start = mid + 1
else:
end = mid - 1
print(cnt)
์ด์ ๊ฒ์๋ฌผ์ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์๊ฒ๋ sys ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ sys.stdin.readline() ํจ์๋ฅผ ์ด์ฉํด input ์๊ฐ์ ์ค์๋๋ฐ๋ ์๊ฐ ์ด๊ณผ ์ค๋ฅ๊ฐ ๋ค์ ๋ฐ์ํ๋ค.
import sys
while True:
n, m = map(int, sys.stdin.readline().split())
if n == 0 and m == 0:
break
array1 = set(int(sys.stdin.readline()) for _ in range(n))
array2 = [int(sys.stdin.readline()) for _ in range(m)]
cnt = 0
for i in array2:
if i in array1:
cnt += 1
print(cnt)
์ค๋ ์ด์ง ํ์์ ๊ตฌํํ๋ฉด์ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ ์ค ํ๋๋ก ์งํฉ ์๋ฃํ์ ์ด์ฉํ ์ฝ๋๊ฐ ๋ ์ฌ๋ผ ์งํฉ์ ์ฌ์ฉํด์ array2 ๋ฆฌ์คํธ์ ์๋ ๋ฐ์ดํฐ๊ฐ ์งํฉ array1์ ์์ผ๋ฉด cnt๋ฅผ ์ฆ๊ฐ์ํค๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฝ๋๋ฅผ ์์ ํ๋ค.
์์ ๊ฒฐ๊ณผ ๋ง์์ต๋๋ค!!๊ฐ ๋์๋ค.
์ ์งํฉ ์๋ฃํ์ ์ฐ๊ธฐ ์ ์ฝ๋์์ ์๊ฐ ์ด๊ณผ ์ค๋ฅ๊ฐ ๋ฐ์ํ์๊น?
์์ง ๋ต์ ์ฐพ์ง ๋ชปํ๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ๊ณต๋ถํด์ผ๊ฒ ๋ค.
๋ช๋ช ์ฌ๋๋ค์ ์ฝ๋์ defaultdic๊ฐ ์ฐ์ฌ ์์๋ค.
dictionary์์ ์กด์ฌํ์ง ์๋ ํค๋ฅผ ์กฐํํ ๊ฒฝ์ฐ KeyError exception์ด ๋ฐ์ํ๋๋ฐ
defaultdict์ ์กด์ฌํ์ง ์๋ ํค๋ฅผ ์กฐํํ๋ฉด ์ค์ ํ ๋ํดํธ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ํด๋น ํค์ ๋ํ ์์ดํ
์ dictionary์ ์ถ๊ฐํด์ค๋ค.