주사위 N개를 가장 적은 수의 탑으로 나눈다. 탑에서 위에서 i번째 주사위는 위에 놓인 주사위가 s_i개 이하여야 한다.
보통6그리디정렬배열이분 탐색면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB아름이는 주사위 N개를 가지고 있다. 주사위는 모두 크기가 같은 정육면체이고, 한 주사위의 여섯 면에는 같은 정수가 하나씩 쓰여 있다.
주사위 탑은 주사위의 변이 맞도록 위로 쌓아 올린 것이다. 주사위에 쓰여 있는 수가 s이면 그 주사위 위에는 주사위를 최대 s개까지 올려놓을 수 있다.
주사위가 4개이고 쓰여 있는 수가 1, 2, 4, 5인 경우를 보자. 위에서부터 2, 1, 4, 5 순서로 쌓는 것은 가능하다. 2가 적힌 주사위 위에 0개, 1이 적힌 주사위 위에 1개, 4가 적힌 주사위 위에 2개, 5가 적힌 주사위 위에 3개가 있기 때문이다. 반면 4, 1, 5, 2 순서로 쌓는 것은 불가능하다. 2가 적힌 주사위 위에 주사위가 3개 있기 때문이다.
주사위 N개를 모두 쌓을 때 만들 수 있는 주사위 탑의 최소 개수를 구하는 프로그램을 작성하시오.
첫째 줄에 주사위의 개수 N(1≤N≤1,000)이 주어진다. 둘째 줄에 주사위에 쓰여 있는 수 N개가 공백으로 구분되어 주어진다. 각 수는 0 이상 1,000 이하의 정수이다.
첫째 줄에 만들 수 있는 주사위 탑의 최소 개수를 출력한다.
주사위 k개가 쌓여 있고 위에서부터 적힌 수가 s1,s2,…,sk인 탑을 (s1,s2,…,sk)로 표현하자.
쓰여 있는 수가 1, 2, 4, 5인 주사위 4개는 (1,2,4,5)나 (2,1,4,5)처럼 탑 하나로 쌓을 수 있고, 다른 방법도 있다.
쓰여 있는 수가 1, 2, 1, 2인 주사위 4개로는 탑을 2개보다 적게 만들 수 없다. (1,2)와 (1,2)로 2개를 만들 수 있고, (1,1,2)와 (2)로 만드는 방법도 있다.
모든 주사위에 0이 적혀 있으면 어떤 주사위 위에도 다른 주사위를 올릴 수 없으므로 탑은 모두 주사위 한 개짜리이다.