ํ”„์—” ๊ณต๋ถ€/๐Ÿซง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ •์ˆ˜ ์ œ๊ณฑ๊ทผ ํŒ๋ณ„ - ๊ฑฐ๋“ญ์ œ๊ณฑ(**), Number.isInteger() ๋ฉ”์†Œ๋“œ

๋˜์ž๐Ÿ‹ 2024. 9. 7. 12:05
728x90

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(๋ฐ‘, ์ง€์ˆ˜) ๋ฅผ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค.  ๋ฐ‘**์ง€์ˆ˜ ๋ž‘ ๊ฐ™์€๊ฑฐ.

 

 

 

728x90
๋ฐ˜์‘ํ˜•