๐ฑ ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ํ์ค๋ ์ ๐ฑ
๐ ๋ฌธ์ ์ค๋ช ๐
์์ ์ ์ x๊ฐ ํ์ค๋ ์์ด๋ ค๋ฉด x์ ์๋ฆฟ์์ ํฉ์ผ๋ก x๊ฐ ๋๋์ด์ ธ์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด 18์ ์๋ฆฟ์ ํฉ์ 1+8=9์ด๊ณ , 18์ 9๋ก ๋๋์ด ๋จ์ด์ง๋ฏ๋ก 18์ ํ์ค๋ ์์ ๋๋ค. ์์ฐ์ x๋ฅผ ์ ๋ ฅ๋ฐ์ x๊ฐ ํ์ค๋ ์์ธ์ง ์๋์ง ๊ฒ์ฌํ๋ ํจ์, solution์ ์์ฑํด์ฃผ์ธ์.
๐งธ ์ ํ ์ฌํญ ๐งธ
x๋ 1 ์ด์, 10000 ์ดํ์ธ ์ ์์ ๋๋ค.
function solution(x) {
let sum =0;
let arr = String(x).split("");
for(let i=0; i<arr.length; i++){
sum += Number(arr[i]);
}
return (x % sum === 0) ? true : false;
}
// ์
๋ ฅ๊ฐ์ด 10์ผ ๋ ๋ชจ๋ ์๋ฆฟ์์ ํฉ์ 1์ด๋ค. ํ์ค๋ ์๋ฅผ ๊ตฌํ๋ ์์ ๋์
ํด๋ณด์์ ๋ 10 / 1 == 0์ผ๋ก ๋ฑ ๋จ์ด์ง๋ฏ๋ก true ๋ฐํ์ํจ๋ค.
// split : String ๊ฐ์ฒด(๋ฌธ์์ด)๋ฅผ ๊ตฌ๋ถ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์์ด๋ก ๋๋๊ณ ๊ทธ ๊ฐ์ ๋ฐฐ์ด๋ก ๋ฐํ์ํต๋๋ค.
๐งธ ๋ฌธ์ ํ์ด ๐งธ
1. String()์ ํตํด x๋ฅผ ๋ฌธ์์ด๋ก ๋ง๋ค์ด ์ค๋๋ค. ๊ทธ ๋ค split()๋ฅผ ํตํด ํ๋์ฉ ์ชผ๊ฐ์ด์ค๋๋ค.
2. ๋ฐ๋ณต๋ฌธ์ ํตํด ์๋ฆฟ์ ๋งํผ ๋ฐ๋ณต ์ํจํ Number()๋ก ๋ฌธ์์ด์ ์ ์๋ก ๋ง๋ค์ด์ค๋๋ค.
3. sum ๋ณ์์ ์ ์๋ก ๋ณํํ ๊ฐ์ ๋ฃ์ด์ค ํ ์ด ํฉ์ ๊ตฌํฉ๋๋ค. (10์ด๋ฉด 1 + 0 ์ด๋ฏ๋ก 1)
4. ๋ฆฌํด์ผ๋ก ๋ง์ฝ x์ ๊ฐ์ sum์ ๊ฐ๋ค๋ก ๋๋์์ ๋ ๋ฑ ๋จ์ด์ง๋ค๋ฉด ํ์ค๋ ์ ์ด๋ฏ๋ก ture๋ฅผ ๋ฐํํฉ๋๋ค. ๋๋จธ์ง ๊ฐ์ด ์๊ธธ ๊ฒฝ์ฐ false๋ฅผ ๋ฐํํฉ๋๋ค.
๐งธ ๋ค๋ฅธ ์ฌ๋์ ํ์ด ๐งธ
function Harshad(n){
return !(n % (n + "").split("").reduce((a, b) => +b + +a ));
}
ํ ์ค๋ก ์งง๊ฒ ์ผ๋ค์..! ๋ ๋ถ๋ฐํด์ผ๊ฒ ์ต๋๋ค. ใ ใ
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ ๊ธฐ๋ณธ (1) | 2022.11.18 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ์ ์ ์ ๊ณฑ๊ทผ ํ๋ณ (1) | 2022.11.17 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ์์ ๋ํ๊ธฐ (2) | 2022.11.15 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : x๋งํผ ๊ฐ๊ฒฉ์ด ์๋ n๊ฐ์ ์ซ์ (1) | 2022.11.14 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ๋ ์ ์ ์ฌ์ด์ ํฉ (1) | 2022.11.14 |
๋๊ธ