Programmers - 가장 큰 정사각형 찾기 with JAVA (V)
문제 0, 1로 이루어진 2차원 배열이 주어진다. 이 때, 1로만 이루어진 정사각형의 넓이 중 가장 큰 넓이를 반환하라. 로직 해당 문제는 DP로 해결을 했다. 처음에는 DP를 항상 일차원적으로만 해석해왔기에 DP라는 아이디어를 떠올리기조차 어려웠다. 하지만 완탐을 하기에는 시간복잡도를 고려해보았을 때, 불가능하다. DP 아이디어는 "현재 x,y좌표에 맞는 최대 넓이는 (x-1, y), (x, y-1), (x-1, y-1)에 해당 하는 값의 최소값 + 1이다." 예를 들어보면, 아래와 같은 2차원 배열이 있다고 가정하자. 매번 1이 나올때마다 체크한다. 0111 1111 1111 0010 (0, 1)까지의 최대 넓이는 1이다. (0, 2)까지의 최대 넓이는 1이다. (0, 3)까지의 최대 넓이는 1이다...