일단 정렬 방법이 O(n^2) 이라 시간제한에 걸릴 것 같고요.. O(nlogn) 시간복잡도의 정렬을 공부해보세요.
그리고 swap 한 번에 구조체 대입 연산이 3번이나 일어나는데
별도의 대입연산자를 구현하지 않으면 구조체의 대입은 그냥 memcpy 같이 구현되거든요
그래서 char[50] 짜리의 메모리가 매번 copy되는것도 느린 속도에 한 몫 하겠네요.
먼저 O(nlogn) 시간복잡도의 정렬을 구현해서 내보시고
그래도 시간초과가 난다면
직접 리소스를 관리하는 코드를 작성하시거나,
문자열을 std::string 으로 관리한다음에 swap할땐 std::swap 함수를 이용하면
내부에서 알아서 별도의 메모리복사 없이 리소스를 교체해주기 때문에 빨라질거에요.
jiwonn7098 8년 전
어떤 정렬 방법을 써야 시간을 맞출수가 있을까요?
도와주세요! ㅠㅇㅠ