[LeetCode] 240. Search a 2D Matrix II

Chobby·2025년 2월 25일
1

LeetCode

목록 보기
256/427

😎풀이

  1. row, col 정의하며 위치는 오른쪽 최상단에서 시작함(탐색 용이성)
  2. row를 1 증가시키거나, col을 1 감소시킬 수 있는 범위 내에서만 순회
    2-1. 현재 값이 target과 같다면 true 반환
    2-2. 현재 값이 target 보다 작다면, 다음 열로 이동 row++
    2-3. 현재 값이 target 보다 크다면, 이전 행으로 이동 col--
  3. 반복 범위 내에 찾지 못할 경우 targetmatrix내에 존재하지 않음
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--
    }
    // while내에서 탐색이 안 될 경우 없는 수 임
    return false
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글