티스토리 뷰
문제링크
https://algospot.com/judge/problem/read/FENCE
아래 그림과 같이 높이가 제각각으로 붙어있는 나무 판자에서 가장 넓은 직사각형을 구하는 문제입니다.
브루트포스로 가능한 모든 값을 탐색해도 답을 얻을 수는 있지만 시간안에 구하지는 못하므로 분할정복을 사용해 문제를 풀어야합니다.
먼저 판자를 아래와 같이 절반으로 나눠 양쪽에서의 가장 넓은 사각형을 구합니다.
왼쪽과 오른쪽 중 더 넓은 값을 구했다 하더라도 전체 판자 중 가장 큰 사각형이 아닐 수 있습니다.
양쪽에 모두 걸친 사각형이 나올 수 있기 때문입니다.
따라서 양쪽 모두 걸친 중간을 기준으로 시작하여 더 넓은 사각형이 있는지 탐색해 나갑니다.
구현 코드
'Coding Test > 알고스팟' 카테고리의 다른 글
[C++] 알고스팟/동적계획법 - 외발 뛰기 (0) | 2020.08.15 |
---|---|
[C++] 알고스팟/분할정복 - 팬미팅 (0) | 2020.08.09 |
[C++] 알고스팟/분할정복 - 쿼드 트리 뒤집기 (0) | 2020.03.30 |
[C++] 알고스팟/비트마스크 - 졸업 학기 (0) | 2020.03.29 |
[C++] 알고스팟/완전탐색 - Synchronizing Clocks (0) | 2020.01.18 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 하이브
- python
- 합친 lis
- 분할정복
- 백준
- 종만북
- 하둡
- HiveQL
- 배열과 문자열
- 완전탐색
- 출전 순서 정하기
- HDFS
- Jaeha's Safe
- hive
- 삼각형 위의 최대 경로
- 삼각형 위의 최대 경로 수 세기
- 코딩인터뷰 완전분석
- 두니발 박사의 탈옥
- 팰린드롬 구하기
- import
- 알고스팟
- Sqoop
- microwaving lunch boxes
- Django
- C++
- 2225
- 외발 뛰기
- 스파크
- Hadoop
- pyspark
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함