스탈린 정렬이라고도하는 "정렬 알고리즘"이 있는데, 목록을 정렬하기 위해 목록에서 요소를 순서대로 정렬 할 때까지 요소를 제거하면됩니다. 예를 들어 목록
[1, 2, 4, 5, 3, 6, 6]
스탈린 정렬을 사용하여 "정렬"된 경우
[1, 2, 4, 5, 6, 6]
순서가 잘못되어 세 개가 제거되었습니다.
이제 목록을 정렬하기 위해 요소를 제거하는 많은 방법이 있습니다. 예를 들어, 요소가 두 개 미만인 목록은 정렬해야하므로 충분한 요소를 맹목적으로 제거하면 항상 목록을 정렬 할 수 있습니다. 이 경우 스탈린 정렬에서 가능한 가장 긴 결과 에만 관심이 있습니다.
당신의 임무는 양의 정수 목록을 가져 와서 원래 목록에서 요소를 제거하여 도달 할 수있는 가장 긴 정렬 된 (증가) 목록의 길이를 출력하는 것입니다. 가장 긴 정렬 된 (비 연속적인) 하위 목록의 길이를 찾습니다.
정렬 된 목록은 동일한 요소를 한 번에 두 번 이상 가질 수 있습니다. 프로그램 자체가 비어 있지 않으면 빈 목록을 지원할 필요가 없습니다.
채점
귀하의 답변은 가능한 가장 긴 스탈린 정렬의 길이에 따라 점수가 매겨집니다. 프로그램은 문자가 아닌 일련의 바이트로 해석되며 순서는 바이트를 숫자로 해석하여 발생하는 자연스러운 순서입니다. 점수가 낮을수록 좋습니다.
이것은 코드 골프 가 아닙니다
여기 깔끔한 - 오 도구 당신이 당신의 답변을 점수 도움이됩니다.
테스트 사례
[1, 2, 4, 5, 3, 6, 6] -> 6
[19, 2] -> 1
[3, 3, 4, 3] -> 3
[10] -> 1
[1, 2, 4, 9] -> 4
[1, 90, 2, 3, 4, 5] -> 5
[1, 90, 91, 2, 3, 4, 5] -> 5