728x90
틀린코드)
import sys
t = int(sys.stdin.readline())
for _ in range(t):
n = int(sys.stdin.readline())
note1 = list(map(int, sys.stdin.readline().split()))
m = int(sys.stdin.readline())
note2 = list(map(int, sys.stdin.readline().split()))
note1.sort()
def binary_search(start, end, target):
while start <= end:
mid = (start+end)//2
if mid == target:
return 1
elif mid < target:
start = mid + 1
else:
end = mid - 1
return 0
for i in note2:
start, end, res = note1[0], note1[n-1], 0
print(binary_search(start, end, i))
정답코드)
import sys
t = int(sys.stdin.readline())
for _ in range(t):
n = int(sys.stdin.readline())
note1 = list(map(int, sys.stdin.readline().split()))
m = int(sys.stdin.readline())
note2 = list(map(int, sys.stdin.readline().split()))
note1.sort()
def binary_search(start, end, target):
while start <= end:
mid = (start+end)//2
if note1[mid] == target:
return note1[mid]
elif note1[mid] < target:
start = mid + 1
else:
end = mid - 1
return None
for i in note2:
if binary_search(0, n-1, i) != None:
print(1)
else:
print(0)
오랜만에 풀어본 이분탐색을 활용하는 문제였는데 start, end를 인덱스가 아닌 값으로 전달했는데 '틀렸습니다'가 나왔다.
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 4358 파이썬(python) : 생태학 - (★) (0) | 2022.09.17 |
---|---|
[백준] 12100 파이썬(python) : 2048 (Easy) (0) | 2022.09.16 |
[백준] 17219 파이썬(python) : 비밀번호 찾기 (0) | 2022.09.14 |
[백준] 15686 파이썬(python) : 치킨 배달 (0) | 2022.09.13 |
[백준] 10819 파이썬(python) : 차이를 최대로 (0) | 2022.09.13 |