1929번 - 소수 구하기
사실 복잡도가 O(n*sqrt(n))이라 풀릴줄 알았는데 안되네요. 질문들을 검색해 보니까 sqrt로 된다는 분들도 계시고... 왜 안되는 걸까요?
sqrt는 기본적으로 매우 매우 무거운 연산입니다. 이 연산을 O(N)번만 해도 무거운데, 이를 for문의 조건문에 넣으면 루프를 도는 횟수만큼 sqrt를 계산해야 하기 때문에 시간 내에 돌 수 없습니다.
sqrt의 값을 미리 계산해서 따로 변수에 빼두고 조건문에는 변수를 넣으면 통과됩니다.
댓글을 작성하려면 로그인해야 합니다.
wggwvs 1년 전
사실 복잡도가 O(n*sqrt(n))이라 풀릴줄 알았는데 안되네요. 질문들을 검색해 보니까 sqrt로 된다는 분들도 계시고... 왜 안되는 걸까요?