ํ์ด ๐๐ปโ๏ธ
function solution(left, right) {
let result = 0;
const numArr = new Array(right - left + 1).fill().map((_, i) => left + i);
for (let element of numArr) {
let i = 1;
const divisorArr = [];
while (i <= element) {
if (element % i === 0) {
divisorArr.push(i);
}
i++;
}
!(divisorArr.length % 2) ? (result += element) : (result -= element);
}
return result;
}
function solution(left, right) {
let result = 0;
for (let i = left; i <= right; i++) {
const divisorArr = [];
for (let j = 1; j <= i; j++) {
if (i % j === 0) {
divisorArr.push(j);
}
}
!(divisorArr.length % 2) ? (result += i) : (result -= i);
}
return result;
}
/*
(ํ์ด1)
๋ฐฐ์ด์ ์์ฑํด์ ์ฝ์๋ฅผ ๊ตฌํด์ผํ๋ ๊ฐ๋ค์ ๋ฃ์ด์ฃผ๊ณ for...of ๋ฌธ์ผ๋ก ์์๋ฅผ ํ๋์ฉ ๋๋ฉฐ
while ๋ฌธ์ ์ด์ฉํด 1๋ถํฐ element๊ฐ๊น์ง ๋๋จธ์ง๊ฐ 0์ด ๋๋ i๊ฐ์ divisorArr๋ฐฐ์ด์ ์ถ๊ฐํด์ค ๋ค
divisorArr.length ๊ฐ ์ง์๋ฉด reuslt์ element๊ฐ์ ๋ํ๊ณ ํ์๋ฉด element๊ฐ์ ๋นผ์ค๋ค.
(ํ์ด2)
์ ํ์ด์ ๋ฐฉ์์ ๋น์ทํ์ง๋ง num๋ฐฐ์ด์ ๋ง๋ค์ง ์๊ณ ์ง์ญ๋ณ์์ธ divisorArr๋ง์ ์ด์ฉํด
2์ค for๋ฌธ ํ์์ผ๋ก ํ์ด๋๋ค. 2์ค for๋ฌธ์ ์ด์ฉํ ๋ฐฉ์์ด map๋ฑ ๋ฐฐ์ด์ ๋ง๋ค์ง ์๊ธฐ์ ๋ ํจ์จ์ ์ธ ๊ฒ ๊ฐ๋ค.
*/
ํผ๋๋ฐฑ ํ์ด
function solution(left, right) {
const numArr = Array.from({ length: right - left + 1}, (_, i) => left + i);
let result = 0;
for (let element of numArr) {
let divisorCount = 0;
let i = 1;
while (i <= element) {
if (element % i === 0) divisorCount++;
i++;
}
result += !(divisorCount % 2) ? element : -element;
}
return result;
}
function solution(left, right) {
let result = 0;
for (let i = left; i <= right; i++) {
let divisorCount = 0;
for (let j = 1; j <= i; j++) {
if (i % j === 0) {
divisorCount++;
}
}
result += !(divisorCount % 2) ? i : -i;
}
return result;
}
- const๋ let์ ์๋จ์ ์์นํ๋๋ก ์์ .
- Array.from ์ ์ด์ฉํด ๋ฐฐ์ด์ ์์ฑํจ์ผ๋ก ๋ถ ํ์ํ ๋ฉ์๋ ์ฒด์ด๋ ์ ๊ฑฐ.
- while๋ฌธ์ ๋ฐ๋ก i๋ผ๋ ๋ณ์๋ฅผ ์ ์ธํด์ค์ผ ํจ์ผ๋ก for๋ฌธ ํ์ฉ
- divisorCount๋ผ๋ ๋ฐฐ์ด์ ์์ฑํ ํ์์์ด ๋จ์ํ๊ฒ count๋ก ๊ด๋ฆฌํด์ ์ซ์๋ง ๋๋ ค์ค ์ ์๋ค.
- ์กฐ๊ฑด์์์ ๋์ ์ฐ์ฐ์๋ฅผ ์ฌ๋ฌ๋ฒ ์ฌ์ฉํ๊ธฐ๋ณด๋ค ๋์ ์ ๊ธฐ์ค์ผ๋ก ์ก๊ณ ์ผํญ์ฐ์ฐ์๋ฅผ ์ด์ฉํ๋ฉด ํจ์ฌ ๊น๋ํ๊ฒ ์์ฑ๊ฐ๋ฅํ๋ค.
๋ค๋ฅธ ํ์ด
function solution(left, right) {
let result = 0;
for (let i = left; i <= right; i++) {
result += getDivisorCount(i) % 2 === 0 ? i : -i;
}
return result;
}
function getDivisorCount(num) {
let divisorCount = 0;
for (let i = 1; i <= num; i++) {
if (num % i === 0) divisorCount++;
}
return divisorCount;
}
- ๋ฆฌ๋๋ ํ์ด๐ ํจ์์ ๋จ์ผ์ฑ ์์์น์ ์ง์ผ ์ฝ์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํจ์๋ฅผ ๋ฐ๋ก ๋ถ๋ฆฌํด ์์ฑํ์ จ๋ค. (๊น๋)
'์๊ณ ๋ฆฌ์ฆ & ๋ฌธ์ ํ์ด > Programmers-1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ์ ์ซ์๋ ์ซ์ด (0) | 2022.09.30 |
---|---|
์ต๋๊ณต์ฝ์์ ์ต๋๊ณต๋ฐฐ์ (0) | 2022.09.28 |
ํ๋ ฌ์ ๋ง์ (0) | 2022.09.27 |
๋ด์ (0) | 2022.09.27 |
์์ ๋ํ๊ธฐ (0) | 2022.09.27 |