exponential_e   5년 전

제가 제대로 생각하고 있는지 제가 생각하는것이 제대로 글로 쓰여질지는 모르겠지만 질문드려봅니다!

문제는 생각이 떠오른대로 풀었습니다. 아래의 코드로 AC받았고 몇몇 분이 풀이하신것을 보니 저랑 거의 똑같이 푸셨더라구요..

그런데 만약에 데이터가 N = 10000 이고, 10000개의 데이터가 모두 1 10000 이 들어온다고 가정하고 아래 코드를 실행 할 경우 시간 복잡도가 어떻게 되나요?

사실 10000개의 데이터를 1 10000으로 처리해서 넣어봤는데 로컬에선 답이 매우 빠르게 나왔습니다. 왠지 N^2일 것만 같았는데.. 제가 시간복잡도 계산을 잘못했다고 밖엔 생각이 안들어서 이렇게 질문드립니다.

코드 내용은 채점번호: 10851782 [https://www.acmicpc.net/source...] (14 ~ 22 번째 줄)를 참고해주세요.

chogahui05   5년 전

O(N^2)가 맞습니다. 0부터 N까지 Loop가 한 번 돌고

안쪽 Loop가 from부터 to까지 도는데 |to - from|이 10000까지 커질 수 있어요. N = 1만인 경우입니다.

그런데 사실 O(N^2)면, JAVA가 조금 느리다는 걸 감안해도 충분히 빨리 돌 겁니다.

exponential_e   5년 전

chogahui님 답변 감사드립니다.

아 N^2이 맞긴했군요.. 상당히 느리다고 느꼈는데 내부 연산도 간단하고 해서 빠른가보네요. ㅠㅠ

아무쪼록 종종 해주시는 답변 덕분에 많이 배워갑니다!! 블로그에서도 마찬가지로요! 감사합니다.

댓글을 작성하려면 로그인해야 합니다.