1) O(n) 정렬
3 8 2 4 5 9 10 2 8 10 3 3 7 5 10 2 8 9 4 1 1 9 10 2 5 위 수의 특징은 모든 원소가 10 이하라는 것에 착안한다. 이와 같이 원소의 range가 원소의 개수에 비해 상당히 좁을 때는, 공간을 더 사용함으로써 시간을 줄이는 정렬 테크닉을 사용할 수 있는데 이를 count sort라고 한다. |
for(int i=0; i<n; i++)
{
int k;
scanf("%d",&k);
arr[k]++;
}
for(int i=1;i<=10;i++)
{
for(int j=0;j<arr[i];j++) printf("%d ",i);
}
2) 알파벳 개수 세기
먼저 모든 문자열이 알파벳 대문자라는 전제하에 진행한다.
char가 ASCII 임을 이용하여 쉽게 개수를 셀 수 있다.
for(var i=0; i<str.length; i++)
{
arr[str.charAt(i)-'A']++;
}
...누가모르냐..
누가모르냐 라고 하는 놈들 특징 : 지한테 시키면 못함
안될텐데
실망;
ㅋㅋㅋㅋㅋㅋ 지멋대로 문제를 축소시키노 이기야
내가 극혐하는 부류중 하나다
실망이라고 하는 거에서 쾌청은 이미 땔깜 수준의 무식함이라고 볼 수 있다. 특수한 경우를 제외하고는 일반적인 정렬 알고리즘은 O(nlgn)이 최적임이 증명되어있는데, 뭘 기대했다는건지? 다른걸 기대한다는거 자체가 이미 무식 인증.
애초에 문제가 주어진 배열을 O(n)으로 정렬하라는거였는데, 지멋대로 확장해가지고 극혐 어쩌구하네. ㅋㅋ 이분 회사 서버 구축하라고 하면 아마존 시스템부터 다만드실분이겠죠?
아마존 시스템 ㅋㅋㅋㅋㅋ - return 0;
근데 진짜 안됨
js에서 문자열은 있고 문자는 없어서 - 'A' 이런거 제대로 처리 못함
1번뭐임
문제를 위한 문제에 불과하니까 문제인 거슬... 이기야 그만 너가 옳다는 상상에서 깨어나라 낄낄
근데 엄밀하게 말하면 O(n+k)인뎅..
이런 키배는 코세가 전문일텐데 그 양반이 아직도 안오노
이딴식의 알고리즘을 극혐하는 이유는 확장성이 너무부족하기때문이지. 내전임자가 이딴식으로 짜놓고 도망쳣는데 수정요청이들어온다? 코드 스파게티되는거 시간문제다 고작 nlogn을 n으로 줄이겠다고 저딴코드를 쓰는데서 글쓴이의 수준이 보이지