1. 원본 배열 생성
2. 원본 배열을 순회하면서 포인터 배열 생성 => O(n)
3. 원본 배열을 정렬하면서 포인터 배열의 요소들도 같은 인덱스에 위치하도록 정렬 => O(nlogn)
4. 원본배열을 순회하면서 고유한 원소의 개수 카운트 => O(n)
5. 카운트한 사이즈의 포인터 배열을 하나 더 선언
6. 원본배열을 순회하면서 고유한 원소에 대한 포인터를 포인터 배열에 삽입 => O(n)
7. 포인터 배열을 오름차순으로 정렬 => O(nlogn)
8. 포인터 배열의 요소들이 가리키는 값 출력 => O(n)
이러면 될까 안될까
C언어를 안하면된다.
ㄹㅇ
해당 댓글은 삭제되었습니다.
오 고민해보게씀
그렇게 코드 짜는 것보다 sort 써서 o(nlogn)으로 짜고, 그 다음 버블정렬로 a[i]!=b[j] temp=arr[i]; arr[i]=brr[j]; brr[j]=temp; 이게 더 효과적임
추가로, data가 들어온대로 정리하는 거에 대한 문제면, (예를 들면, os 라는 닉네임과 47이라는 점수 그리고 oa라는 닉네임과 47이라는 점수의 data가 있고 점수가 높은 것 부터 출력하면 점수가 같아서 os oa 이런식으로 정렬이 안됨. 이런 경우는 starble_sort를 사용해야됨)