그냥 어디서 string a와 b가 anagram인가 테스트 하는 함수를 만들라는걸 봤는데
가장 쉬운건 그냥 a랑 b랑 qsort 한다음에 둘이 같은가를 해보는거고 ( O(nlogn)인 부분?)
그다음으로 생각한건 카운팅할 배열을 만들어서 (아스키 코드로 a-z까지 26개 배열)
두 string 다 순차적으로 읽어오면서 배열 맞는위치에 카운트 해주고 마지막에 두 배열이 같던 아니면 하나의 배열에 더하기 빼기를 해서 마스킹을 하던 어쩌고 해서
여튼 배열로 검사하는게 생각났거든
그럼 그건 O(C*n)이잖아 (물론 저장공간이 필요하지만) 근데 실제로 구현해서 둘이 돌려보니까
sort로 구현한게 더 빠르게 나오던데
단순히 C*n이 (A는 상수인 부분) nlogn 보다 큰 구간만 테스트 해봐서 그런걸까? 아니면 내가 뭐 잘못생각하고 있는게 있나??
는 시발 글쓰고 알았다
병신같이 배열에 처박아서 카운팅 하는 함수에 테스트 해보려고 배열에 저장된 내용 다 cout해보게 해서 그랬군..
근데 그거보다 어떤 방법이 성능 더 좋은지 확인할 수 있는방법 뭐있음? include <time.h> 해서 start end 찍고 하니까 테스트 케이스 존나 크게 만들지 않는이상 항상 0 1 이렇게 나오던데
다 합해서 같은지나 본다