[프로그래머스/Lv1/자바스크립트] 약수의 합
2023. 4. 28. 12:15
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12928
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
function solution(n) {
var answer = 0;
for (var i = 1; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
answer += i;
if (n / i != i) {
answer += n / i;
}
}
}
return answer;
}
메모
아래 코드를 제출해도 통과할 수 있다.
function solution(n) {
var answer = 0;
for (var i = 1; i <= n; i++) {
if (n % i == 0) {
answer += i;
}
}
return answer;
}
하지만 위 코드는 시간복잡도 측면에서 효율이 좋지 않기 때문에 제출한 코드는 더 효율적인 알고리즘을 사용했다.
알고리즘은 아래 링크 참조
https://kbw1101.tistory.com/32
[알고리즘] 효율적으로 약수를 찾는 알고리즘
코딩테스트 문제 중, 가끔 수학적인 기초를 묻는 문제에 약수, 배수 등의 문제가 출제된다. 이러한 유형의 문제를 접해본 경험이 없는 사람들은 최악의 시간복잡도를 갖는, 모든 경우를 찾는 순
kbw1101.tistory.com
'코딩테스트 > 연습문제' 카테고리의 다른 글
[프로그래머스/Lv1/자바스크립트] 자릿수 더하기 (0) | 2023.05.01 |
---|---|
[프로그래머스/Lv1/자바스크립트] 평균 구하기 (0) | 2023.04.28 |
[프로그래머스/Lv1/자바스크립트] 짝수와 홀수 (0) | 2023.04.28 |
[프로그래머스/Lv2] 가장 큰 수 (0) | 2022.12.01 |
[프로그래머스/Lv2] 다리를 지나는 트럭 (0) | 2022.11.30 |