Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 오픽가격
- 바텀업
- XML
- stack 스택
- dp
- 오픽
- 오픽공부법
- 다이나믹프로그래밍
- 오픽노잼
- ㅂ
- 영어회화
- 탑다운
- topdown
- XML주석
- 주석
- opic
- fibo
- dynamicProgramming
- 디피
- 오픽노잼공부방법
- English
- 피보나치수열
- 메모이제이션
- 오픽점수잘받는방법
- 영어말하기
- 이진탐색
- 안드로이드
- 이진탐색 #나무 자르기
- 안드로이드주석
Archives
RUBY
[프로그래머스] 가장 큰 정사각형 찾기 본문
출처:: programmers.co.kr/learn/courses/30/lessons/12905?language=python3
분류:: 완전탐색, dp
1. 문제 이해 및 해결과정
1) dp
- O(n^3)로 완탐하면 시간초과 발생가능성이 있으므로, dp를 고려함 - dp는 만들 수 있는 최대 직사각형의 크기 - board[i][j]가 1일 경우에만, dp = min(board[i-1][j-1],board[i][j-1],board[i-1][j]) + 1 |
2. 풀이방법
1. dp
def solution(board):
h=len(board) #세로
w=len(board[0]) #가로
for i in range(1,h):
for j in range(1,w):
board[i][j]=min(board[i-1][j-1],board[i][j-1],board[i-1][j])+1
return max([ i for row in board for i in row ])**2 #최대값을 찾아서 제곱
3. 오답원인
4. 알게된 점
'PS > Programmers' 카테고리의 다른 글
[프로그래머스] 쿼드압축 후 개수 세기 (0) | 2020.10.24 |
---|---|
[프로그래머스] 위장 (0) | 2020.10.23 |
[프로그래머스] 전화번호 목록 (0) | 2020.10.22 |
[프로그래머스] H-Index (1) | 2020.10.22 |
[프로그래머스] 구명보트 (0) | 2020.10.22 |
Comments