728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/77884
코드
const getYakSu = (num) => {
let yaksu = [];
for (let i=1; i<=num; i++) { //1부터 num까지
if (num % i === 0) yaksu.push(i); //나누어 떨어지면 약수에 추가
}
for (let i=0; i<yaksu.length; i++) {
if (yaksu.length % 2 === 0) return true; //약수의 개수가 짝수라면 true
else return false; //아니면 false
}
};
function solution(left, right) {
let answer = 0;
for (let i=left; i<=right; i++) { //left부터 right까지 (둘다 포함)
if (getYakSu(i) === true) answer += i; //약수개수가 짝수라면 더하기
else answer -= i; //아니면 빼기
}
return answer;
}
후기
- solution함수에 코딩을 다 해볼까 하다가 함수를 따로 만들어서 코딩해보았다
- 자바스크립트 문제를 풀다가 종종 "const 변수명 = (매개변수) => {};" 형태의 함수인지 객체인지 모를 것들을 많이 보곤했는데 이 문제를 풀면서 해당 문법에 대해 찾아보게 되었고, ES6문법에서 새로 추가된 Arrow Function (애로우 함수)이란 것을 알게 되었다
- 찾아보니 일반 function과의 차이점은 크게 다를 것은 없으나 몇 가지 차이점이 있긴 있었다. 나중에 이에 대해 자세히 포스팅해봐야겠다!
'알고리즘 > Programmers' 카테고리의 다른 글
[Programmers] 수박수박수박수박수박수? / JavaScript (0) | 2022.01.16 |
---|---|
[Programmers] 3진법 뒤집기 / JavaScript (0) | 2022.01.16 |
[Programmers] 나머지가 1이 되는 수 찾기 / JavaScript (0) | 2022.01.16 |
[Programmers] 예산 / JavaScript (0) | 2022.01.12 |
[Programmers] 같은 숫자는 싫어 / JavaScript (0) | 2022.01.12 |