https://school.programmers.co.kr/learn/courses/30/lessons/77884
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr


function solution(left, right) {
let answer = 0;
let divisorObj = {};
for (let i=left; i<=right; i++) {
let cnt = 0;
for (let j=1; j<=i; j++) {
if (i % j === 0) cnt++;
}
divisorObj[i] = cnt;
}
for (let i in divisorObj) {
if (divisorObj[i] % 2 === 0) {
answer += parseInt(i);
} else answer -= parseInt(i);
}
return answer;
}
(for 문)
매개변수 left부터 right까지 값들의 약수의 개수를 구해
객체를 만들어주었다.
***
divisorObj [i] = cnt는
예를 들어 i가 13, cnt가 2라면
divisorObj라는 객체에 key 값이 13, value 값이 2인 쌍이 만들어지는 것
***
(for ... in 문)
divisorObj를 돌면서 약수의 개수가 짝수이면 answer에 해당 key 값을 더하고,
홀수이면 key 값을 빼줬다.
key 값이 문자열이므로 parseInt를 사용하여 정수로 바꿔주었다.
'코딩테스트 > Programmers' 카테고리의 다른 글
두 개 뽑아서 더하기 (JS) (0) | 2022.07.09 |
---|---|
3진법 뒤집기 (JS) (0) | 2022.07.09 |
완주하지 못한 선수 (JS) (0) | 2022.07.08 |
내적 (JS) (0) | 2022.07.07 |
음양 더하기 (JS) (0) | 2022.07.07 |