
😎풀이
row
, col
정의하며 위치는 오른쪽 최상단에서 시작함(탐색 용이성)
row
를 1 증가시키거나, col
을 1 감소시킬 수 있는 범위 내에서만 순회
2-1. 현재 값이 target
과 같다면 true
반환
2-2. 현재 값이 target
보다 작다면, 다음 열로 이동 row++
2-3. 현재 값이 target
보다 크다면, 이전 행으로 이동 col--
- 반복 범위 내에 찾지 못할 경우
target
은 matrix
내에 존재하지 않음
function searchMatrix(matrix: number[][], target: number): boolean {
let row = 0
let col = matrix[0].length - 1
while(row < matrix.length && col >= 0) {
const curVal = matrix[row][col]
if(curVal === target) return true
if(curVal < target) row++
else col--
}
return false
};