공부기록

240. Search a 2D Matrix II 본문

코테/LeetCode

240. Search a 2D Matrix II

코타쿠 2022. 4. 7. 18:14

문제

https://leetcode.com/problems/search-a-2d-matrix-ii/

코드

import java.util.*;

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int N = matrix.length;
        int M = matrix[0].length;
        int curRow = 0;
        int curCol = M-1;

        while(curCol >= 0 && curRow <= matrix.length-1){
            if(matrix[curRow][curCol] == target)
                return true;
            else if(matrix[curRow][curCol] > target)
                curCol--;
            else
                curRow++;
        }
        return false;
    }
}

피드백

  • 일단 예전에 풀었던 거지만 다시 못풀었다. (전에도 다시 못풀었음)
  • 모범 답안은 오른쪽 끝에서 시작해서 현재 수가 target 보다 크면 왼쪽으로, 작으면 아래로 가는 것이다.
    • 왼쪽으로 가서 수를 작게함
    • 오른쪽으로 가서 수를 크게 함
    • 수를 작고 크게 함으로써 답을 찾음
  • 내가 틀린 이유는 계속 무조건 더하거나, 무조건 빼거나 하는 식으로 탐색했기 때문이다.
    • 아래, 오른쪽으로 이동 => 계속 더함
    • 위, 왼쪽으로 이동 => 계속 뺌
    • 나선형으로 빙빙 도는 것도 생각했으나 안될 것 같아서 구현을 안함

'코테 > LeetCode' 카테고리의 다른 글

384. Shuffle an Array  (0) 2022.04.09
210. Course Schedule II  (0) 2022.04.08
96. Unique Binary Search Trees  (0) 2022.03.21
242. Valid Anagram  (0) 2022.03.14
1626. Best Team With No Conflicts  (0) 2022.03.06