피라미드
면접 대비시간 제한1초메모리 제한1024 MB
N개의 블록이 주어질 때 남은 블록으로 만들 수 있는 가장 큰 삼각수를 계속 빼면서, 만들어진 피라미드의 높이를 큰 것부터 출력한다.
문제

Elena는 정육면체 모양의 블록이 가득 든 상자를 발견하고, 가능한 한 높은 피라미드를 쌓기로 했다. 블록이 남으면 피라미드를 더 쌓는다.
피라미드는 안정적이고 아름다워야 한다. 어떤 피라미드의 맨 아래 층(바닥)이 개의 블록으로 이루어지면, 바로 위층은 반드시 개의 블록으로 이루어져야 하고, 이런 식으로 한 층씩 올라간다. 완성된 피라미드는 정확히 개의 층을 가지며, 맨 위층에는 항상 블록이 개 있다. 따라서 높이가 인 피라미드는 개의 블록을 사용한다.
블록의 개수가 주어질 때, 남아 있는 블록으로 가능한 한 높은 피라미드를 반복해서 쌓는다. 즉, 가진 블록으로 가장 높은 피라미드를 하나 쌓고, 남은 블록으로 다시 가장 높은 피라미드를 쌓는 과정을 블록이 하나도 남지 않을 때까지 반복한다. 이렇게 쌓을 수 있는 피라미드들의 높이를 구하여라.
입력
가진 블록의 개수를 나타내는 정수 하나가 주어진다.
출력
쌓을 수 있는 피라미드들의 높이를 각 줄에 하나씩 출력한다. 높이는 가장 높은 것부터 가장 낮은 것 순으로 출력한다.