케이크
면접 대비시간 제한1초메모리 제한128 MB
주어진 빵 조각 길이를 순서대로 연속한 구간으로 나누어 아래층부터 위층까지 쌓되, 각 층의 합이 바로 위 층의 합 이상이 되도록 할 때 만들 수 있는 층 수의 최댓값을 구한다.
문제
친구들이 재민이의 생일을 축하하려고 생일 케이크를 만들고 있다.
케이크를 만들기 위해 높이가 이고 길이가 각각 인 빵조각을 번부터 번까지 순서대로 굽는다. 이 빵조각들을 하나도 버리지 않고 모두 쌓아 층층이 케이크를 만들려고 한다.
케이크는 여러 층으로 이루어질 수 있다. 한 층의 길이는 그 층에 놓인 빵조각들의 길이의 합이다. 케이크가 무너지지 않으려면, 위층의 길이가 바로 아래층의 길이보다 클 수 없다.
또한 나중에 구운 빵조각은 먼저 구운 빵조각보다 낮은 층에 놓을 수 없다. 즉 각 층에는 번호가 연속된 빵조각들이 순서대로 놓이며, 아래층에서 위층으로 갈수록 빵조각의 번호가 커진다.
이 조건을 모두 지키면서 케이크를 가장 높이 쌓으려고 한다. 최대 몇 층까지 쌓을 수 있는가?
입력
첫째 줄에 빵조각의 개수 이 주어진다. ()
다음 개의 줄에 걸쳐 각 빵조각의 길이 가 한 줄에 하나씩 주어진다. ()
출력
쌓을 수 있는 케이크의 최대 층수를 출력한다.
힌트
예를 들어 빵조각의 길이가 순서대로 이면 다음과 같이 쌓을 수 있다.
+----------+
| 3 |
+---+------+
| 1 | 2 |
+---+------+
아래층은 번과 번 빵조각(길이의 합 ), 위층은 번 빵조각(길이 )으로 이루어져 두 층을 쌓을 수 있다.