강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

cksdid0402님의 프로필 이미지
cksdid0402

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

9번 문제 다른 풀이방식 질문입니다!

작성

·

193

0

안녕하세요 9번 문제를 혼자서 해결하다 선생님께서 풀이하신 방법과 다르지만 채점결과 100점이 나와서 질문 드립니다.

우선 제가 작성한 코드는 위와 같습니다. 모든 수는 최소 1과 자신을 약수로 갖기 때문에 초기 약수 개수를 2로 두었습니다.

약수는 대칭성이 있다고 판단했으며, 대칭이 되는 기준이 개수를 구하려는 수에 루트를 씌운 값이라고 생각해서 1을 제외한

기준 전까지 구한 약수의 개수를 2 곱해서 더하고, 기준값이 정수인 경우 1을 더해서 약수의 개수를 최종적으로 구했습니다. 

제가 작성한 방식으로 한다면, 시간복잡도가 nlogn이 나와서 더욱 효율적이지 않나 궁금해서 질문드리게 되었습니다.

답변해주시면 감사하겠습니다!

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

스스로 연구해서 자기만의 방법으로 푼것이 매우 좋습니다. 배수로 체크하는 방법과 제곱근까지 확인하는 방법 이 두 방법은 성능차이를 논할 만한 큰 차이가 없다고 생각됩니다. 배수로 체크하는 방법도 인사이트 출판사의 나라심하 카루만치 책을 보면  O(nlogn)으로 분류하고 있습니다.

cksdid0402님의 프로필 이미지
cksdid0402

작성한 질문수

질문하기