문제
너비가 같은 N개의 나무 판자를 붙여 세운 울타리가 있습니다. 시간이 지남에 따라 판자들이 부러지거나 망가져 높이가 다 달라진 관계로 울타리를 통째로 교체하기로 했습니다. 이 때 버리는 울타리의 일부를 직사각형으로 잘라내 재활용하고 싶습니다. 그림 (b)는 (a)의 울타리에서 잘라낼 수 있는 많은 직사각형 중 가장 넓은 직사각형을 보여줍니다. 울타리를 구성하는 각 판자의 높이가 주어질 때, 잘라낼 수 있는 직사각형의 최대 크기를 계산하는 프로그램을 작성하세요. 단 (c)처럼 직사각형을 비스듬히 잘라낼 수는 없습니다.
판자의 너비는 모두 1이라고 가정합니다.
출력
각 테스트 케이스당 정수 하나를 한 줄에 출력합니다. 이 정수는 주어진 울타리에서 잘라낼 수 있는 최대 직사각형의 크기를 나타내야 합니다.
노트
이 문제를 sql로 푸는 것입니다.
단 이 문제는 그냥 푸셔도 되고
그냥 푸시는 것이 쉬우시면
성능에 도전하셔도 됩니다.
성능에 도전하실 경우는
create table fence
as
select
level no
,round(dbms_random.VALUE(10,10000),0) h
from dual
connect by level <= 20000
/
로 테이블을 만드시고 이 테이블에 대하여 1분 내로 결과를 내시면 됩니다.
|