김치킨 195
읽고 쓰는 프로그래머
김치킨 195
전체 방문자
오늘
어제
  • 분류 전체보기 (46)
    • 읽다 (1)
    • 쓰다 (12)
      • 자기계발 (6)
      • 지식관리 (1)
      • 글쓰기 (3)
      • 생각 (2)
    • 개발하다 (1)
      • 개발 (1)
    • 기타 (0)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • 네트워크 격리
  • 부자들의 초격차 독서법
  • ReactNative
  • 아웃풋트레이닝
  • 컨테이너
  • wls2
  • vsCode
  • PM2
  • RN
  • 파인만 테크닉
  • 리눅스
  • WSL2
  • 리액트네이티브
  • docker build
  • 도커
  • Docker
  • docker images
  • 아웃풋 트레이닝
  • react-native
  • 글쓰기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
김치킨 195

읽고 쓰는 프로그래머

카테고리 없음

릿코드(leetcode)---221 maximal-square

2022. 6. 23. 14:28

링크

Maximal Square

picture 4

가장 큰 1로 이루어진 정사각형의 크기를 반환하는 문제

풀이

picture 5

  • 재귀적으로 해결
    • 이전에 파악한 사각형에서 대각선 아래(x+1, y+1)의 요소를 확인하고 해당 요소의 위와 왼쪽 요소를 depth개 만큼 확인한다.
    • 확인이 되지 않으면 그 전 크기를 반환한다.
function maximalSquare(matrix: string[][]): number {
  const m = matrix.length
  const n = matrix[0].length
  let max = 0

  const getSize = (x: number, y: number, depth: number): number => {
    if (x >= m || y >= n) return depth
    if (matrix[x][y] !== '1') return depth

    for (let i = 1; i < depth + 1; i++) {
      if (matrix[x][y - i] === '0' || matrix[x - i][y] === '0') {
        return depth
      }
    }

    return getSize(x + 1, y + 1, depth + 1)
  }

  for (let i = 0; i < matrix.length; i++) {
    for (let j = 0; j < matrix[0].length; j++) {
      if (matrix[i][j] === '1') {
        max = Math.max(1, max)
        const size = getSize(i, j, 0)
        max = Math.max(max, size * size)
      }
    }
  }
  return max
}
    김치킨 195
    김치킨 195
    읽고, 쓰고, 개발한 기록을 보관합니다.

    티스토리툴바