가장 큰 정사각형 찾기
[프로그래머스,Level 2] 가장 큰 정사각형 찾기 (JAVA 구현)
- 첫 풀이 이 문제를 처음 풀 때는 board를 탐색하면서 1을 만나면 1부터 board의 길이만큼 증가시키며 정사각형을 만족하는지 판단하는 방식으로 진행하였는데, 몇몇 테스트 케이스는 통과하지만 이 경우는 모든 1에 대해서 수행하기 때문에 효율성 측면에서도 시간 초과가 발생한다. DFS나 BFS를 이용해 풀어볼까 했지만 불가능할 것 같아 다른 방법이 있나 찾아보게 되었다. - 정답풀이 결국 이 문제는 DP를 활용해야 한다. 자세한 설명은 다른 블로그를 참고하면 쉽게 알 수 있다. class Solution { public int solution(int [][]board) { // 1. DP 배열. int dp[][] = new int[board.length][board[0].length]; int a..