Zero to Hero
article thumbnail
Published 2021. 5. 18. 10:03
240. Search a 2D Matrix II Algorithm
 

Search a 2D Matrix II - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

1. Brute Force

class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        temp = []
        for item in matrix:
            temp += item
        if target in temp:
            return True
        return False

그냥 이렇게 배열을 정말 탐색해도 통과는 된다.

2. 이진 탐색

class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        if not matrix:
            return False
        row, col = 0, len(matrix[0]) - 1
        while 0 <= row < len(matrix) and 0 <= col < len(matrix[0]):
            temp = matrix[row][col]
            if temp == target:
                return True
            elif temp > target:
                col -= 1
            elif temp < target:
                row += 1
        return False

정렬이 되어있는데 탐색을 해야 한다면 이진 탐색을 한번 생각해보면 좋다.

행, 열 모두 오름차순으로 정렬되어있기 때문에 위 풀이가 가능하다.

 

이진 탐색은 생각했지만 예쁘게 푸는 법을 스스로 찾진 못했다.

'Algorithm' 카테고리의 다른 글

300. Longest Increasing Subsequence  (0) 2021.05.19
208. Implement Trie (Prefix Tree)  (0) 2021.05.18
279. Perfect Squares  (0) 2021.05.17
236. Lowest Common Ancestor of a Binary Tree  (0) 2021.05.17
200. Number of Islands  (0) 2021.05.17
profile

Zero to Hero

@Doljae

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!