[ํ๋ก๊ทธ๋๋จธ์ค] ์ ์ ์ ๊ณฑ๊ทผ ํ๋ณ - ๊ฑฐ๋ญ์ ๊ณฑ(**), Number.isInteger() ๋ฉ์๋
https://school.programmers.co.kr/learn/courses/30/lessons/12934
โ๏ธ ๋ฌธ์ ์ถ์ฒ
์์์ ์์ ์ ์ n์ ๋ํด, n์ด ์ด๋ค ์์ ์ ์ x์ ์ ๊ณฑ์ธ์ง ์๋์ง ํ๋จํ๋ ค ํฉ๋๋ค.
n์ด ์์ ์ ์ x์ ์ ๊ณฑ์ด๋ผ๋ฉด x+1์ ์ ๊ณฑ์ ๋ฆฌํดํ๊ณ , n์ด ์์ ์ ์ x์ ์ ๊ณฑ์ด ์๋๋ผ๋ฉด -1์ ๋ฆฌํดํ๋ ํจ์๋ฅผ ์์ฑํ์ธ์.
function solution(n) {
return Number.isInteger(Math.sqrt(n)) ? (Math.sqrt(n) +1)**2 : -1
}
์ ๊ณฑ์ธ์ง ํ๋ณํ๋ ค๋ฉด -> ์ ๊ณฑ๊ทผ์ ๊ตฌํ์ ๋ ๊ทธ ์ ๊ณฑ๊ทผ์ด ์ ์์ฌ์ผ ํ๋ค๊ณ ์๊ฐ.
121 ์ 11๋ก ๋ฑ ๋๋์ด ๋จ์ด์ง๊ณ , 100๋ 10์ผ๋ก ๋ฑ ๋๋์ด ๋จ์ด์ง๊ธฐ ๋๋ฌธ์.
๊ทธ๋์ Math.sqrt() ๋ฉ์๋๋ฅผ ์ด์ฉํด ์ ๊ณฑ๊ทผ์ ๋จผ์ ๊ตฌํด์คฌ๋๋ฐ, ์ด ์ ๊ณฑ๊ทผ์ด ์ ์์ธ์ง๋ฅผ ํ๋ณํด์ผ ํ๋จ ๋ง์ด์ง!
10์ผ๋ก ๊ณ์ ๋๋ ์ ๋๋จธ์ง๊ฐ 0์ด ๋๋ฉด ์ ์์ธ๋ฐ, ๋ ๊น๋ํ ๋ฐฉ๋ฒ์ด ์์๊น ํด์ ์ฐพ์๋ดค๋ค.
์บฌ Number ๊ฐ ๊ฐ์ง ๋ฉ์๋๊ฐ ์์๋ค.
์๋ ์ ์๋ฉด true๋ฅผ, ์๋๋ฉด false ๋ฅผ ๋ฐํํด์ค๋ค.
๊ทธ๋์ ๋ฌธ์ ๊ฐ ์๊ตฌํ ๊ฒ ์ฒ๋ผ ์ ์์ผ ๋ (= ์ ๊ณฑ๊ทผ์ด ์์ ๋) x+1 ์ ์ ๊ณฑ์ ๋ฆฌํดํด์คฌ๊ณ ์๋๋ฉด -1 ์ ๋ฆฌํดํด์คฌ๋ค.
๊ทผ๋ฐ ์ ๊ณฑ ์ด์ผ ํ๋๊ฑด์ง ๊น๋จน์ด์ ์ฐพ์๋ดค๋ค.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Exponentiation
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/pow
์๋ Math.pow(๋ฐ, ์ง์) ๋ฅผ ๋ฃ์ผ๋ฉด ๋๋ค. ๋ฐ**์ง์ ๋ ๊ฐ์๊ฑฐ.