<내코드>
<풀이과정>
DP를 이용해 박스를 나눌수 있는 최소크기(1*1은 예외로 처리하고, 2*2 부터)로 나눠서 우측 하단이 1 일때만 둘러쌓인 값들 중
최솟값에 +1 한값을 우측 하단에 넣어준다.(다음 연산에도 앞전 계산값을 이용하기 위해서) 추가적으로 _max에 바뀌는 값들중 최댓값을
제곱해서 리턴하면 원하는 결과값이 나오게 된다.
<느낀점>
처음에 완전탐색으로 풀었는데 당연하게도 시간초과가 떠서 더 쉬운방법을 생각하던 중, 동적계획법(DP)로 푼 알고리즘을 찾았고,
아이디어를 따와서 풀었다. 동적계획법에 관한 공부도 해야할 것 같다.
'코딩테스트' 카테고리의 다른 글
[프로그래머스(Programmers)/Level2](Python) 올바른 괄호 (0) | 2020.07.17 |
---|---|
[프로그래머스(Programmers)/Level2](Python) 튜플 (0) | 2020.07.17 |
[프로그래머스(Programmers)/Level2](Python) 카펫 (0) | 2020.07.14 |
[프로그래머스(Programmers)/Level2](Python) 라면 공장 (0) | 2020.07.14 |
[프로그래머스(Programmers)/Level2](Python) 타겟 넘버 (0) | 2020.07.14 |