공부기록
240. Search a 2D Matrix II 본문
문제
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 |