<aside> 🔥 LeetCode 240 링크
</aside>
문제 정리
2차원 배열의 matrix가 주어지고 찾을 값 target이 주어진다.
matrix에 target이 있으면 True, 없으면 False를 반환하라
접근 방법
이진 탐색으로 matrix의 각 행을 탐색하도록 구현했다.
코드 진행
binary_search라는 함수를 만들어 이진 탐색을 구현했다.
def searchMatrix(self, matrix, target):
def binary_search(arr, target, lo, hi):
if lo <= hi:
mid = (lo + hi) // 2
if arr[mid] < target:
return binary_search(arr, target, mid + 1, hi)
elif arr[mid] > target:
return binary_search(arr, target, lo, mid - 1)
else:
return mid
is_in 이라는 변수를 만들어 결과값을 출력하고
maxtrix에 for문을 돌려주어서 각 행을 전달해준다.
is_in = False
for row in matrix:
if binary_search(row, target, 0, len(row) - 1):
is_in = True
return is_in
결과
문제 없이 잘 통과될 줄 알았는데 이상하게 제출한 결과랑 파이참에서 돌렸을 때 결과가 달랐다.
파이참에서는 분명 True로 반환되는데 리트코드 제출하면 False로 반환된다.
이유를 알 수가 없다..
풀이 참조