728x90
๐ฑ ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ์ฝ์์ ๊ฐ์์ ๋ง์ ๐ฑ
๐ ๋ฌธ์ ์ค๋ช ๐
๋ ์ ์ left์ right๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. left๋ถํฐ right๊น์ง์ ๋ชจ๋ ์๋ค ์ค์์, ์ฝ์์ ๊ฐ์๊ฐ ์ง์์ธ ์๋ ๋ํ๊ณ , ์ฝ์์ ๊ฐ์๊ฐ ํ์์ธ ์๋ ๋บ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐งธ ์ ํ ์ฌํญ ๐งธ
1 โค left โค right โค 1,000
function solution(left, right) {
let answer = 0;
for(let i = left; i <= right; i++) {
let count = 0; // ์ฝ์์ ๊ฐ์๋ฅผ ๋ด๊ธฐ์ํ ๋ณ์
for(let j = 1; j<=i; j++) { // ๊ฐ๊ฐ์ i์ ์ฝ์๋ฅผ ๊ตฌํ๋ ๋ฐ๋ณต๋ฌธ์ ํ ๋ฒ ๋ ์์ผ์ค๋๋ค.
if(i % j === 0) { // ๋๋์ด ๋จ์ด์ง๋ ์๋ ์ฝ์์ด๋ฏ๋ก ์กฐ๊ฑด๋ฌธ์ ํตํด sum์ 1์ฉ ์ฆ๊ฐ์ํต๋๋ค.
count += 1
}
}
answer = count%2==0 ? answer += i : answer -= i
// ์กฐ๊ฑด์ผํญ์๋ฅผ ํตํด ๋ง์ฝ i์ ์ฝ์ ๊ฐฏ์๊ฐ ์ง์๋ผ๋ฉด ๋ํ๊ณ ํ์๋ผ๋ฉด ๋นผ์ค๋๋ค.
}
return answer;
}
// ๋ง์ฝ left๊ฐ 13 / right๊ฐ 17์ผ ๊ฒฝ์ฐ 43์ ์ถ๋ ฅํ๊ฒ ๋ฉ๋๋ค.
// left๊ฐ 24 / right๊ฐ 27์ด๋ผ๋ฉด 52๋ฅผ ์ถ๋ ฅํฉ๋๋ค!
๐งธ ๋ฌธ์ ํ์ด ๐งธ
์ค๋์ ์ฃผ์์ ํจ๊ป ์ฐธ๊ณ ํด์ฃผ์ธ์!!
๐งธ ๋ค๋ฅธ ์ฌ๋์ ํ์ด ๐งธ
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;
}
isInteger๋ผ๋ ์๋ก์ด ๋ฉ์๋๊ฐ ๋์๋ค์..! ์์ง ์ ๋ชจ๋ฅด๋ ๋ฉ์๋๋ผ ํ ๋ฒ ๊ณต๋ถํด๋ด์ผ๊ฒ ์ต๋๋ค..!
728x90
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค1๋จ๊ณ : ํ๋ ฌ์ ๋ง์ (1) | 2022.11.25 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค1๋จ๊ณ : ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ (1) | 2022.11.24 |
ํ๋ก๊ทธ๋๋จธ์ค1๋จ๊ณ : ๊ฐ์ด๋ฐ ๊ธ์ ๊ฐ์ ธ์ค๊ธฐ (2) | 2022.11.22 |
ํ๋ก๊ทธ๋๋จธ์ค1๋จ๊ณ : ๋ด์ (1) | 2022.11.21 |
ํ๋ก๊ทธ๋๋จธ์ค1๋จ๊ณ : ์๋ ์ซ์ ๋ํ๊ธฐ (2) | 2022.11.21 |
๋๊ธ