[프로그래머스/Lv1/자바스크립트] 약수의 개수와 덧셈
2023. 5. 11. 12:08
문제
https://school.programmers.co.kr/learn/courses/30/lessons/77884
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
function getDivisor(n) {
divisorList = [];
for (var i = 1; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
divisorList.push(i);
if (i != n / i) {
divisorList.push(n / i);
}
}
}
return divisorList;
}
function solution(left, right) {
var answer = 0;
for (var i = left; i <= right; i++) {
if (getDivisor(i).length % 2 == 0) {
answer += i;
}
else {
answer -= i;
}
}
return answer;
}
메모
약수를 구하는 알고리즘을 사용함. 약수의 배열을 반환하기 때문에 배열의 개수를 세서 짝수일 때 answer에 입력값을 더하고, 홀수일 때 answer에 입력값을 뺌.
https://cheolyong.tistory.com/8
약수 구하기
def find_num_divisor(n): divisor_list = [] for i in range(1, int(sqrt(n)) + 1): if n % i == 0: divisor_list.append(i) if i != n / i: divisor_list.append(int(n / i)) return list(set(divisor_list)) 수를 입력하면 해당 수의 약수들을 리스트 형
cheolyong.tistory.com
'코딩테스트 > 연습문제' 카테고리의 다른 글
[프로그래머스/Lv1/자바스크립트] 문자열 다루기 기본 (0) | 2023.05.11 |
---|---|
[프로그래머스/Lv1/자바스크립트] 부족한 금액 계산하기 (0) | 2023.05.11 |
[프로그래머스/Lv1/자바스크립트] 문자열 내림차순으로 배치하기 (0) | 2023.05.08 |
[프로그래머스/Lv1/자바스크립트] 내적 (0) | 2023.05.08 |
[프로그래머스/Lv1/자바스크립트] 수박수박수박수박수박수? (0) | 2023.05.08 |