๋ฐ์ํ
Question
์ ์ถ๋ ฅ ์์
My Code
์ฒ์ ํ์๋ ๋ฐฉ๋ฒ
function solution(x) {
let num = String(x);
let result = 0;
for (let i = 0 ; i < num.length ; i ++) {
result += Number(num[i]);
}
return x % result === 0 ? true : false ;
}
HOW? (ํ์ด๋ฐฉ๋ฒ)
for๋ฌธ์ ์ด์ฉํ ํ์ด
- ์ ๋ ฅ๋ฐ์ ์์ ์๋ฆฌ๋ง๋ค ์๋ ์๋ฅผ ๋ํ๊ธฐ ์ํด string์ผ๋ก ์ซ์๋ฅผ ๋ณํํ๋ค.
- for๋ฌธ์ ์ด์ฉํด ์๋ฆฟ์๋งํผ ๋ฐ๋ณต๋ฌธ์ ๋๋ ธ๋ค.
- ๋ณ์ result์ ๊ฐ ์๋ฆฟ์์ ์๋ ์ซ์๋ฅผ ํ๋ฌ์คํ๋ค.
- ์ ๋ ฅ๋ฐ์ ์ซ์์ ๋ํด์ง ์ซ์์ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ๋๋จธ์ง๊ฐ 0์ด ๋๋์ง์ ์ฌ๋ถ์ ๋ฐ๋ผ true์ false๋ฅผ return ํ๋๋ก ํ๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ ํ์ด๋ฅผ ๋ณด๋ค ๋ณด๋ method๋ฅผ ํ์ฉํด ํธ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
split์ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์๊ฐ ๋ชปํ๋ค. ๐คทโ๏ธ
function solution(x) {
let num = (x+'').split('').map(Number).reduce((a,b) => a + b);
return x % num === 0 ;
}
HOW? (ํ์ด๋ฐฉ๋ฒ)
method๋ฅผ ํ์ฉํ ํ์ด
- ์ ๋ ฅ๋ฐ์ ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ๋ค.
- split์ ์ด์ฉํด ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ฃผ๊ณ map์ ์ด์ฉํด string์ผ๋ก ๋์ด์๋ ๋ฐฐ์ด๊ฐ์ number๋ก ๋ณํํ๋ค.
- reduce๋ฅผ ํตํด ๊ฐ ์๋ฆฟ์์ ๋ํ๊ธฐ๋ฅผ ํด์ค๋ค.
- ์ ๋ ฅ๋ฐ์ ์ซ์์ ๋ํด์ง ๊ฒฐ๊ด๊ฐ์ ๋๋จธ์ง๊ฐ 0์ด ๋๋ฉด true๋ฅผ ์๋๋ฉด false๋ฅผ ๋ฐํํ๋ค.
๋ฐ์ํ
'Algorithms > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค : ์ฒด์ก๋ณต (0) | 2022.05.19 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค : ์ ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ (0) | 2022.05.17 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค : ์ฝ๋ผ์ธ ์ถ์ธก (0) | 2022.05.13 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค : ์ฝ์์ ํฉ (0) | 2022.05.04 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค : ์ง์์ ํ์ (0) | 2022.04.11 |