https://school.programmers.co.kr/learn/courses/30/lessons/12934
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
โ๏ธ ๋ฌธ์ ์ถ์ฒ
์์์ ์์ ์ ์ 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.isInteger() - JavaScript | MDN
The Number.isInteger() static method determines whether the passed value is an integer.
developer.mozilla.org
์บฌ Number ๊ฐ ๊ฐ์ง ๋ฉ์๋๊ฐ ์์๋ค.
์๋ ์ ์๋ฉด true๋ฅผ, ์๋๋ฉด false ๋ฅผ ๋ฐํํด์ค๋ค.
๊ทธ๋์ ๋ฌธ์ ๊ฐ ์๊ตฌํ ๊ฒ ์ฒ๋ผ ์ ์์ผ ๋ (= ์ ๊ณฑ๊ทผ์ด ์์ ๋) x+1 ์ ์ ๊ณฑ์ ๋ฆฌํดํด์คฌ๊ณ ์๋๋ฉด -1 ์ ๋ฆฌํดํด์คฌ๋ค.
๊ทผ๋ฐ ์ ๊ณฑ ์ด์ผ ํ๋๊ฑด์ง ๊น๋จน์ด์ ์ฐพ์๋ดค๋ค.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Exponentiation
๊ฑฐ๋ญ์ ๊ณฑ (**) - JavaScript | MDN
๊ฑฐ๋ญ์ ๊ณฑ ์ฐ์ฐ์(**)๋ ์ผ์ชฝ ํผ์ฐ์ฐ์๋ฅผ ๋ฐ, ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์๋ฅผ ์ง์๋ก ํ ๊ฐ์ ๊ตฌํฉ๋๋ค. BigInt๋ ํผ์ฐ์ฐ์๋ก ๋ฐ์ ์ ์๋ค๋ ์ ์ ์ ์ธํ๋ฉด Math.pow()์ ๊ฐ์ต๋๋ค.
developer.mozilla.org
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/pow
Math.pow() - JavaScript | MDN
๋ฐ ๊ฐ.
developer.mozilla.org
์๋ Math.pow(๋ฐ, ์ง์) ๋ฅผ ๋ฃ์ผ๋ฉด ๋๋ค. ๋ฐ**์ง์ ๋ ๊ฐ์๊ฑฐ.
'ํ์ ๊ณต๋ถ > ๐ซง ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํน๋ณํ ์ด์ฐจ์ ๋ฐฐ์ด1 (0) | 2024.10.24 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ๊น์ด 1 ์ฐพ๊ธฐ - IndexOf(์ฐพ์ element, ์์ํ index) (0) | 2024.10.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌธ์์ด ๋ด p์ y์ ๊ฐ์ (0) | 2024.09.05 |
[์๊ณ ๋ฆฌ์ฆ || ํ๋ก๊ทธ๋๋จธ์ค] ๋๋ง์ ์ํธ (1) | 2023.11.30 |
[์๊ณ ๋ฆฌ์ฆ || ๋ฐฑ์ค JS] 1676 ํฉํ ๋ฆฌ์ผ 0์ ๊ฐ์ (1) | 2023.10.17 |