λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
⌨️ Language/swift

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ LV.1] μ •μˆ˜ 제곱근 νŒλ³„

by hyebin (Helia) 2023. 2. 10.
λ°˜μ‘ν˜•
ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ LV.1 λͺ¨μŒ

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

문제 μ„€λͺ…

μž„μ˜μ˜ μ–‘μ˜ μ •μˆ˜ n에 λŒ€ν•΄, n이 μ–΄λ–€ μ–‘μ˜ μ •μˆ˜ x의 μ œκ³±μΈμ§€ μ•„λ‹Œμ§€ νŒλ‹¨ν•˜λ € ν•©λ‹ˆλ‹€.

n이 μ–‘μ˜ μ •μˆ˜ x의 제곱이라면 x+1의 μ œκ³±μ„ λ¦¬ν„΄ν•˜κ³ , n이 μ–‘μ˜ μ •μˆ˜ x의 제곱이 μ•„λ‹ˆλΌλ©΄ -1을 λ¦¬ν„΄ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ™„μ„±ν•˜μ„Έμš”.

μ œν•œ 사항

  • n은 1 이상, 50000000000000 μ΄ν•˜μΈ μ–‘μ˜ μ •μˆ˜μž…λ‹ˆλ‹€.

μž…μΆœλ ₯ 예

n return
121 144
3 -1

μž…μΆœλ ₯ 예 μ„€λͺ…

μž…μΆœλ ₯ 예 #1

  • 121은 μ–‘μ˜ μ •μˆ˜ 11의 μ œκ³±μ΄λ―€λ‘œ, (11+1)을 μ œκ³±ν•œ 144λ₯Ό return ν•©λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #2

  • 3은 μ–‘μ˜ μ •μˆ˜μ˜ 제곱이 μ•„λ‹ˆλ―€λ‘œ, -1을 return ν•©λ‹ˆλ‹€.

제좜

import Foundation

func solution(_ n:Int64) -> Int64 {
    var num = Int64(sqrt(Double(n)))
    return num*num == n ? (num+1)*(num+1) : -1
}
μž…λ ₯받은 μ •μˆ˜μ˜ μ œκ³±κ·Όμ„ κ΅¬ν•œλ‹€.
제곱근*제곱근이 μž…λ ₯받은 μ •μˆ˜μ™€ κ°™λ‹€λ©΄(μ–‘μ˜ μ •μˆ˜ μ΄λ―€λ‘œ), (제곱근+1)을 μ œκ³±ν•˜μ—¬ λ°˜ν™˜ν•œλ‹€.
μ•„λ‹ˆλΌλ©΄ -1을 λ°˜ν™˜ν•œλ‹€.
λ°˜μ‘ν˜•