Ultra-QuickSort
면접 대비시간 제한1초메모리 제한256 MB
서로 다른 정수로 이루어진 수열이 주어질 때, 오름차순으로 정렬하는 데 필요한 인접 교환의 최솟값, 즉 역전의 개수를 구한다.
문제
이 문제에서는 특정한 정렬 알고리즘을 분석해야 합니다. 이 알고리즘은 서로 다른 정수 개로 이루어진 수열을, 인접한 두 원소를 교환(swap)하는 연산만 반복하여 오름차순으로 정렬합니다. 예를 들어 수열 9, 1, 0, 5, 4는 0, 1, 4, 5, 9로 정렬됩니다.
주어진 입력 수열을 오름차순으로 정렬하기 위해 Ultra-QuickSort가 수행해야 하는 교환 연산의 최소 횟수를 구하세요.
입력
입력은 여러 개의 테스트 케이스로 이루어집니다. 각 테스트 케이스의 첫 줄에는 입력 수열의 길이를 나타내는 정수 ()이 주어집니다. 이어지는 개의 줄에는 각각 수열의 번째 원소 ()가 한 줄에 하나씩 주어집니다. 한 테스트 케이스 안의 정수들은 모두 서로 다릅니다. 입력은 길이가 인 수열로 끝나며, 이 수열은 처리하지 않습니다.
출력
각 입력 수열에 대해, 그 수열을 오름차순으로 정렬하는 데 필요한 교환 연산의 최소 횟수 를 한 줄에 하나씩 출력합니다.