
Published 2022. 7. 19. 21:49
/*
https://school.programmers.co.kr/learn/courses/30/lessons/77884
๋ฌธ์ ์ค๋ช
๋ ์ ์ left์ right๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. left๋ถํฐ right๊น์ง์ ๋ชจ๋ ์๋ค ์ค์์, ์ฝ์์ ๊ฐ์๊ฐ ์ง์์ธ ์๋ ๋ํ๊ณ , ์ฝ์์ ๊ฐ์๊ฐ ํ์์ธ ์๋ ๋บ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
1 โค left โค right โค 1,000
*/
/*
1. ์ผ๋จ ๋งค๊ฐ๋ณ์์ ์ฝ์๊ฐ์ ๊ตฌํด์ผํจ
2. ์ฝ์์ ๊ฐ์๋ฅผ ์์์ผํจ
3. ์ฝ์์ ๊ฐ์๊ฐ ํ์์ด๋ฉด ํด๋น ๋งค๊ฐ๋ณ์๋ ๋ง์ด๋์ค, ์ฝ์์ ๊ฐ์๊ฐ ์ง์์ด๋ฉด ํด๋น ๋งค๊ฐ๋ณ์๋ ํ๋ฌ์ค
4. ํด์ ๋์ ์ํจ ๊ฐ ๋์ถ ์ํค๋ฉด ๋จ
*/
const solution = (left, right) => {
let answer = 0;
// i๋ left ๊ฐ๋ถํฐ ~ right ๊ฐ์ด๋ ๊ฐ์์ง๋๊น์ง for๋ฌธ์ ๋๋ฆผ
// ์ด์ค for๋ฌธ์ผ๋ก j๋ 0๋ถํฐ i๊ฐ(right ๊ฐ)์ด๋ ๊ฐ์์ง๋๊น์ง ๋๋ฆผ
for (let i = left; i <= right; i++) {
let val = [];
for (let j = 0; j <= i; j++) {
if (i % j === 0) val.push(j);
// i(left~right)๊ฐ๊ณผ j(0~right)๊ฐ์ด ๋๋ ์ง๋ค๋ฉด j๊ฐ์ i๊ฐ์ ์ฝ์์ด๊ธฐ์ ๋น ๋ฐฐ์ด์ j๊ฐ์ ํธ์ฌ
}
val.length % 2 === 0 ? (answer += i) : (answer -= i); // ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 2๋ก ๋๋ ์ง๋ค๋ฉด ์ฝ์์ ๊ฐ์๊ฐ ์ง์์ด๊ธฐ์ ๋ฌ์ค, ๋ฐ๋์ ๊ฒฝ์ฐ์ ํ์์ด๊ธฐ์ ๋ง์ด๋์ค
}
return answer;
};
console.log(solution(13, 17));
console.log(solution(24, 27));
/*
๋ค๋ฅธ ์ฌ๋์ ํ์ด
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;
}
์ ๊ณฑ๊ทผ์ด ์ ์๋ฉด ์ฝ์์ ๊ฐ์๊ฐ ํ์๋ค
*/