문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
메모
배열 각각의 요소에 어떤 처리를 해서 해당 요소를 이용하고 싶을 때 forEach를 쓰면 된다.
정답
function solution(left, right) {
let answer = 0;
const arr = Array(right - left + 1)
.fill(left)
.map((a, b) => a + b);
for (let i = 0; i < arr.length; i++) {
const num = Array(arr[i])
.fill(1)
.map((a, b) => a + b)
.filter(x => arr[i] % x === 0);
num.length % 2 === 0 ? (answer += arr[i]) : (answer -= arr[i]);
}
return answer;
}
function solution(left, right) {
let answer = 0;
let arr = Array(right - left + 1)
.fill(left)
.map((a, b) => a + b);
arr.forEach(x => {
let measure = Array(x)
.fill(1)
.map((a, b) => a + b)
.filter(num => x % num === 0);
measure.length % 2 === 0 ? (answer += x) : (answer -= x);
});
return answer;
}
function solution(left, right) {
var answer = 0;
for (let i = left; i <= right; i++) {
if (Number.isInteger(Math.sqrt(i))) {
answer -= i;
} else {
answer += i;
}
}
return answer;
}