<aside> 🔥 LeetCode 240 링크

</aside>

문제 정리

2차원 배열의 matrix가 주어지고 찾을 값 target이 주어진다.

matrix에 target이 있으면 True, 없으면 False를 반환하라

접근 방법

이진 탐색으로 matrix의 각 행을 탐색하도록 구현했다.

코드 진행

  1. 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
    
  2. 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로 반환된다.

이유를 알 수가 없다..

Untitled

Untitled

풀이 참조