μ•Œκ³ λ¦¬μ¦˜ & λ¬Έμ œν’€μ΄/Programmers-1

μ •μˆ˜ 제곱근 νŒλ³„

YunCow 2022. 9. 18. 03:05

문제 λ‚΄μš©

ν’€μ΄πŸ™ŽπŸ»‍♂️

function solution(n) {
  const squareRoot = Math.sqrt(n);

  return Number.isInteger(squareRoot)
    ? (squareRoot + 1) * (squareRoot + 1)
    : -1;
}

  1. sqrt λ©”μ„œλ“œλŠ” μ œκ³±κ·Όμ„ λ°˜ν™˜ν•œλ‹€. 즉 νƒ€κ²Ÿ κ°’μ—κ²Œ 루트λ₯Ό μ”Œμ›Œμ„œ λ°˜ν™˜ν•œλ‹€λŠ” μ†Œλ¦¬.
  2. μ£Όμ–΄μ§„ n에 sqrtλ₯Ό μ‚¬μš©ν–ˆμ„ λ•Œ μ–‘μ˜ μ •μˆ˜μ˜ 제곱이라면 μ •μˆ˜κ°€ λ‚˜μ˜€κ²Œ λœλ‹€.
  3. κ·Έ μ΄ν›„μ—λŠ” μ •μˆ˜μΈμ§€ νŒλ‹¨ν•˜μ—¬ boolean 값을 λ°˜ν™˜ν•˜λŠ” isIntegerλ©”μ„œλ“œλ₯Ό μ΄μš©ν•΄ μ‚Όν•­μ—°μ‚°μžλ‘œ μ •μˆ˜λΌλ©΄ 제곱의 +1 값을 κ³±ν•΄μ„œ 리턴
  4. μ •μˆ˜κ°€ 아닐 κ²½μš°μ—λŠ” μ‘°κ±΄λŒ€λ‘œ -1 을 λ¦¬ν„΄ν•œλ‹€

ν”Όλ“œλ°± 풀이

function solution(n) {
  const squareRoot = Math.sqrt(n);
  return Number.isInteger(squareRoot)
    ? (squareRoot + 1) ** 2
    : -1;
}
  • 제곱근 μ—°μ‚°μžλ₯Ό μ΄μš©ν•˜λ©΄ 반볡적인 μž‘μ„± 없이 더 κΉ”λ”ν•˜κ²Œ μž‘μ„±ν•  수 μžˆλ‹€. πŸ‘