target
요소가 2차원 행렬 내에 존재하는지를 확인하는 문제이다.
다만 배열의 모든 요소를 순회하며 검사한다면 문제 풀이 조건에 어긋난다.
따라서 이미 오름차 순으로 정렬되어있는 배열의 마지막 요소를 저장하여 target
요소가 포함될 행을 파악하고
해당 행 내에서 target
이 존재하는지 판별하였음
function searchMatrix(matrix: number[][], target: number): boolean {
const m = matrix.length
const n = matrix[0].length
const rowLast = []
let targetRow = 0
// 각 행의 마지막 요소들을 입력
for(let i = 0; i < m; i++) {
rowLast.push(matrix[i][n - 1])
}
// 어느 행에 포함될지 판단
for(let i = 0; i < rowLast.length; i++) {
const curRowLast = rowLast[i]
if(target <= curRowLast) {
targetRow = i
break
}
}
// 해당 행에 타깃이 있는지 확인
return matrix[targetRow].includes(target)
};