[C++] 가장 큰 정사각형 찾기 - DP

·
coding test - C++/기본기문제
문제 유형이 문제는 2차원 DP(동적 계획법) 유형이다.각 칸에서 만들 수 있는 가장 큰 정사각형의 크기를 이전 칸들의 결과를 이용해 계산한다.DP 상태board[i][j]를 다음 의미로 사용한다.(i, j)를 오른쪽 아래 꼭짓점으로 하는 가장 큰 정사각형의 한 변 길이원래 값은 0 또는 1이지만, 계산하면서 DP 값으로 바꿔 저장한다.점화식현재 칸이 0이면 정사각형을 만들 수 없다.board[i][j] = 0현재 칸이 1이면:board[i][j] =min(위쪽, 왼쪽, 왼쪽 위 대각선) + 1코드로는:board[i][j] = min({board[i - 1][j], board[i][j - 1], board[i - 1][j - 1]}) + 1;세 방향 중 하나라도 작으면 ..