#include <stdio.h>
template< typename T>
void unique(T* arr, std::size_t& count)
{
int cnt=0;
int index=0;
int temp;
while(cnt<count)
{
temp = arr[cnt];
arr[index++] = temp;
cnt = binarysearch(arr, cnt, count, temp)+1;
}
count = index;
return;
}
/*binarysearch 는
arr 1,1,2,2,3,3,4,4,5,5 에서
binarysearch(arr, 0, 10, 1) 하면 1가 return
binarysearch(arr, 2, 10, 2) 하면 3가 return
binarysearch(arr, 4, 10, 3) 하면 5가 return
binarysearch(arr, 6, 10, 4) 하면 7가 return
binarysearch(arr, 8, 10, 5) 하면 9가 return
되게 짜면됨
중복되는경우가 많을떄 이게 더 효율적이고
중복되는 경우가 적다고하면 그냥 인덱스 두개로 놀면 O(n) 걸려서 될듯
아님?
O( N ) 으로 풀 수 있엉
ㄴ 그건 너무 쉬운거 같아서 일부러 꼬은건데 ;;
중복되는 경우가 많아도 O( N ) 이 더 효율적이양
O( N ) 으로 함 풀어봐유~